martinmoene / optional-lite

optional lite - A C++17-like optional, a nullable object for C++98, C++11 and later in a single-file header-only library
Boost Software License 1.0
403 stars 45 forks source link

Support for "bits/type_traits.h" #63

Open davide-prade opened 3 years ago

davide-prade commented 3 years ago

I am cross-compiling for ARM architecture with arm-linux-g++ (GCC) 3.4.4 compiler and the standard library header type_traits is under bits folder. To fix the related compilation issue I have defined the following preprocessor directives, but I think that there is a better way to do the same thing.

#define optional_HAVE_BITS_TYPE_TRAITS  defined(__arm__)
#if optional_HAVE( BITS_TYPE_TRAITS )
# include <bits/type_traits.h>
#elif optional_HAVE( TYPE_TRAITS )
# include <type_traits>
#elif optional_HAVE( TR1_TYPE_TRAITS )
# include <tr1/type_traits>
#endif
martinmoene commented 3 years ago

is a C++11 header. The first GCC compiler to support C++11 seems to be gcc 4.3/4.8 (see bottom of page).

Doesn't seem like a good idea to me to go down this path...