Sprout/sprout/config/compiler/clang.hpp

72 lines
2.1 KiB
C++
Raw Normal View History

2013-08-08 18:54:33 +09:00
/*=============================================================================
2016-02-25 18:48:28 +09:00
Copyright (c) 2011-2016 Bolero MURAKAMI
2013-08-08 18:54:33 +09: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_CLANG_HPP
#define SPROUT_CONFIG_COMPILER_CLANG_HPP
#if !__has_feature(cxx_constexpr)
# define SPROUT_NO_CXX11_CONSTEXPR
#endif
2012-12-17 23:10:23 +09:00
#if !__has_feature(cxx_defaulted_functions)
# define SPROUT_NO_CXX11_DEFAULTED_FUNCTIONS
2012-12-17 23:10:23 +09:00
#endif
#if !__has_feature(cxx_deleted_functions)
# define SPROUT_NO_CXX11_DELETED_FUNCTIONS
2012-12-17 23:10:23 +09:00
#endif
#if !__has_feature(cxx_explicit_conversions)
# define SPROUT_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
#endif
#if !__has_feature(cxx_noexcept)
# define SPROUT_NO_CXX11_NOEXCEPT
#endif
#if !__has_feature(cxx_alias_templates)
# define SPROUT_NO_CXX11_TEMPLATE_ALIASES
#endif
#if !__has_feature(cxx_user_literals)
# define SPROUT_NO_CXX11_USER_DEFINED_LITERALS
#endif
#if !__has_feature(cxx_delegating_constructors)
# define SPROUT_NO_CXX11_DELEGATING_CONSTRUCTORS
#endif
2012-12-17 23:10:23 +09:00
#if !__has_feature(cxx_unicode_literals)
# define SPROUT_NO_CXX11_UNICODE_LITERALS
2012-12-17 23:10:23 +09:00
#endif
2014-02-21 00:25:55 +09:00
#if !__has_feature(cxx_attributes)
# define SPROUT_NO_CXX11_ATTRIBUTES
#endif
2014-01-27 19:09:00 +09:00
#if !__has_feature(cxx_relaxed_constexpr)
2013-10-05 13:35:26 +09:00
# define SPROUT_NO_CXX14_CONSTEXPR
#endif
2014-01-27 19:09:00 +09:00
#if !__has_feature(cxx_variable_templates)
# define SPROUT_NO_CXX14_VARIABLE_TEMPLATES
#endif
2014-03-19 19:50:00 +09:00
#if (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 0))
# define SPROUT_HAS_CONSTEXPR_COPYSIGN_FUNCTION
#endif
#if !defined(SPROUT_NO_CXX11_CONSTEXPR)
# define SPROUT_WORKAROUND_NOT_TERMINATE_RECURSIVE_CONSTEXPR_FUNCTION_TEMPLATE
#endif
2012-07-05 17:39:19 +09:00
2014-01-27 19:09:00 +09:00
#if (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
# define SPROUT_WORKAROUND_NEEDS_EXPLICIT_EMPTY_BASE_CLASS_CONSTRUCT
#endif
#endif // #ifndef SPROUT_CONFIG_COMPILER_CLANG_HPP