Sprout/sprout/config/compiler/gcc.hpp

76 lines
2.7 KiB
C++
Raw Normal View History

2013-08-08 09:54:33 +00:00
/*=============================================================================
Copyright (c) 2011-2019 Bolero MURAKAMI
2013-08-08 09:54:33 +00:00
https://github.com/bolero-MURAKAMI/Sprout
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
=============================================================================*/
#ifndef SPROUT_CONFIG_COMPILER_GCC_HPP
#define SPROUT_CONFIG_COMPILER_GCC_HPP
#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
# define SPROUT_GCC_CXX11
#endif
#if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(SPROUT_GCC_CXX11))
# define SPROUT_NO_CXX11_CONSTEXPR
#endif
#if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(SPROUT_GCC_CXX11))
# define SPROUT_NO_CXX11_DEFAULTED_FUNCTIONS
2012-12-17 14:10:23 +00:00
#endif
#if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(SPROUT_GCC_CXX11))
# define SPROUT_NO_CXX11_DELETED_FUNCTIONS
2012-12-17 14:10:23 +00:00
#endif
#if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(SPROUT_GCC_CXX11))
# define SPROUT_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#endif
#if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(SPROUT_GCC_CXX11))
# define SPROUT_NO_CXX11_NOEXCEPT
#endif
#if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(SPROUT_GCC_CXX11))
# define SPROUT_NO_CXX11_TEMPLATE_ALIASES
#endif
#if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(SPROUT_GCC_CXX11))
# define SPROUT_NO_CXX11_USER_DEFINED_LITERALS
#endif
#if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(SPROUT_GCC_CXX11))
# define SPROUT_NO_CXX11_DELEGATING_CONSTRUCTORS
#endif
#if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(SPROUT_GCC_CXX11))
# define SPROUT_NO_CXX11_UNICODE_LITERALS
2012-12-17 14:10:23 +00:00
#endif
#if ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) && defined(SPROUT_GCC_CXX11))
2014-02-20 15:25:55 +00:00
# define SPROUT_NO_CXX11_ATTRIBUTES
#endif
#if ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && defined(SPROUT_GCC_CXX11))
2012-05-04 03:09:06 +00:00
# define SPROUT_HAS_CONSTEXPR_CMATH_FUNCTION
#endif
#if ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && defined(SPROUT_GCC_CXX11))
2014-03-19 10:50:00 +00:00
# define SPROUT_HAS_CONSTEXPR_COPYSIGN_FUNCTION
#endif
#if ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && defined(SPROUT_GCC_CXX11))
2012-06-22 13:56:25 +00:00
# define SPROUT_HAS_CONSTEXPR_BIT_OPERATION
#endif
2015-04-05 15:21:34 +00:00
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
2016-04-05 02:57:06 +00:00
# define SPROUT_NO_CXX14_CONSTEXPR
2015-04-05 15:21:34 +00:00
#endif
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
2016-04-05 02:57:06 +00:00
# define SPROUT_NO_CXX14_VARIABLE_TEMPLATES
2015-04-05 15:21:34 +00:00
#endif
#endif // #ifndef SPROUT_CONFIG_COMPILER_GCC_HPP