Config: improved NO_PROPER_CONVERT

This commit is contained in:
Andrzej Krzemieński
2015-10-13 10:47:26 +02:00
parent 78fe81e3ed
commit 29975d6192

View File

@ -60,12 +60,26 @@
#endif #endif
#if defined(__GNUC__) #if defined(__GNUC__)
# if (__GNUC__ == 5 && __GNUC_MINOR__ <= 2) || (__GNUC__ == 6 && __GNUC_MINOR__ < 1) // On some GCC versions an unwanted temporary is created when you copy-initialize
// On GCC 5.1, 5.2 and 6.0 an unwanted temporary is created when you copy-initialize
// from a const lvalue of integral type. Thus we bind not to the original address but // from a const lvalue of integral type. Thus we bind not to the original address but
// to a temporary. // to a temporary.
# if (__GNUC__ == 4 && __GNUC_MINOR__ == 4)
# define BOOST_OPTIONAL_CONFIG_NO_PROPER_CONVERT_FROM_CONST_INT # define BOOST_OPTIONAL_CONFIG_NO_PROPER_CONVERT_FROM_CONST_INT
# endif # endif
#endif
# if (__GNUC__ == 4 && __GNUC_MINOR__ == 5)
# define BOOST_OPTIONAL_CONFIG_NO_PROPER_CONVERT_FROM_CONST_INT
# endif
# if (__GNUC__ == 5 && __GNUC_MINOR__ < 2)
# define BOOST_OPTIONAL_CONFIG_NO_PROPER_CONVERT_FROM_CONST_INT
# endif
# if (__GNUC__ == 5 && __GNUC_MINOR__ == 2 && __GNUC_PATCHLEVEL__ == 0)
# define BOOST_OPTIONAL_CONFIG_NO_PROPER_CONVERT_FROM_CONST_INT
# endif
#endif // defined(__GNUC__)
#endif // header guard #endif // header guard