Implementation notes

Class Diagram

Arbitrary Implementation Notes

  • The implementation tries to isolate the library user as much as possible from the system header files since those headers define a lot of define symbols and introduce a host of symbols into the global namespace. This is, why some classes define their own enum types to replace system defined define constants. This also precludes inlining some functionality.
  • To reduce overhead, template functions/members which are more than one-liners are often implemented in terms of a non-template function/member. This is also used to further the isolation from system headers as defined above (template code must always be included into every compilation unit together with all headers need for the implementation).