libbinio can be configured in various ways at compile time and some parts of the library can be disabled to save disk space and/or processing speed.
In some cases, these configuration options directly change parts of the interface and must thus also be known by the library user.
To make these options available to the library user, libbinio defines some C preprocessor macros in binio.h. These are:
BINIO_ENABLE_STRING
¶If this macro expands to ‘1’, STL string
object
support is enabled and can be used instead of traditional C
ASCIIZ pointers with all functions that expect a string
somewhere. It expands to ‘0’ otherwise.
BINIO_ENABLE_IOSTREAM
¶If this macro expands to ‘1’, the iostream wrapper classes are enabled and can be used by the library user. It expands to ‘0’ otherwise and no iostream wrapper classes are present in this case.
BINIO_ISO_STDLIB
¶If this macro expands to ‘1’, libbinio’s iostream wrapper classes are taylored for the ISO standard C++ library, instead of a “traditional” iostream implementation. It expands to ‘0’ otherwise. This macro is merely for libbinio’s internal use and should not be used by an application programmer.
BINIO_WITH_MATH
¶This macro is for libbinio’s internal use and should not be used by an application programmer.
All macros are always defined. The decision whether a feature is enabled in the library has to be based on the value of these macros, not whether they are defined or not.