1 #ifndef PROTOZERO_CONFIG_HPP 2 #define PROTOZERO_CONFIG_HPP 3 4 /***************************************************************************** 5 6 protozero - Minimalistic protocol buffer decoder and encoder in C++. 7 8 This file is from https://github.com/mapbox/protozero where you can find more 9 documentation. 10 11 *****************************************************************************/ 12 13 #include <cassert> 14 15 /** 16 * @file config.hpp 17 * 18 * @brief Contains macro checks for different configurations. 19 */ 20 21 #define PROTOZERO_LITTLE_ENDIAN 1234 22 #define PROTOZERO_BIG_ENDIAN 4321 23 24 // Find out which byte order the machine has. 25 #if defined(__BYTE_ORDER) 26 # if (__BYTE_ORDER == __LITTLE_ENDIAN) 27 # define PROTOZERO_BYTE_ORDER PROTOZERO_LITTLE_ENDIAN 28 # endif 29 # if (__BYTE_ORDER == __BIG_ENDIAN) 30 # define PROTOZERO_BYTE_ORDER PROTOZERO_BIG_ENDIAN 31 # endif 32 #else 33 // This probably isn't a very good default, but might do until we figure 34 // out something better. 35 # define PROTOZERO_BYTE_ORDER PROTOZERO_LITTLE_ENDIAN 36 #endif 37 38 // Check whether __builtin_bswap is available 39 #if defined(__GNUC__) || defined(__clang__) 40 # define PROTOZERO_USE_BUILTIN_BSWAP 41 #endif 42 43 // Wrapper for assert() used for testing 44 #ifndef protozero_assert 45 # define protozero_assert(x) assert(x) 46 #endif 47 48 #endif // PROTOZERO_CONFIG_HPP 49