Portability
CLIP is designed as a Multi-Threaded/Multi-Core/Multi-Processor/Distributed software middleware. Therefore, portability issues need to be considered at the design stage
Data Types
The C/C++ language standard does not specify exact size of data types and therefore they are not consistent across hardware platforms. CLIP defines a set of Intrinsic data types (Int, Char, Float etc), that are defined in a platform specific header file, to ensure a consistent data size.
Data Structures
The C/C++ language does not specify how data is arranged within data structures and therefore the data alignment is inconsistent across platforms. Try to organize structures to minimise the potential problems.
Memory Pointers
When data is moved across processors, memory pointers will become invalid. Dont use pointers in data that can be moved between processors (Records/State).
C++ STL
The C++ standard template library are functionally standard, but not implementation standard. Thus their internal data structures are inconsistent and they often use hidden pointers. Do not use in data that can be moved between processors (Records/State).