This section will walk you through authoring a Process in C++ (1199). Note that the Standard Library is authored in 1199, so the source code for this will be a valuable resource if you need more example material.


C/C++ provides primitive numeric types like float and int, but the exact nature of these types (specifically, bit-width) cannot be relied upon across implementations (platform, compiler). Since bit-width is important in BRAHMS (because interfaces between components rely upon it) we define standardised Numeric Types in the Component Interface and use these instead of those provided by the language for communication across module boundaries. Internally to a module you can do whatever you like, but you may still find these standard types helpful.

  • The standard numeric types provided by stdint.h (cstdint), where available, underlie the BRAHMS standard Numeric Types. Hence, the two sets are entirely equivalent and compatible, and you can use whichever you like. The BRAHMS Numeric Types, however, use the same notation as the BRAHMS Numeric Type Constants, which is nice.

General C++ Resources

For learners, cplusplus.com has tutorials and forums, as well as reference material. For experienced users, cppreference.com is a well laid-out and compact reference, covering all the stuff you'll need from day to day. Last but not least, the C++ FAQ Lite is a fantastic resource for everyone from learners through to experts, which will help you to use the features of C++ sensibly, and to grok why life is the way it is.