diff options
Diffstat (limited to 'libcxx/include')
| -rw-r--r-- | libcxx/include/__config | 8 | ||||
| -rw-r--r-- | libcxx/include/experimental/chrono | 4 | ||||
| -rw-r--r-- | libcxx/include/experimental/ratio | 4 | ||||
| -rw-r--r-- | libcxx/include/experimental/system_error | 4 | ||||
| -rw-r--r-- | libcxx/include/experimental/type_traits | 4 |
5 files changed, 16 insertions, 8 deletions
diff --git a/libcxx/include/__config b/libcxx/include/__config index 88ea441be12..33c386b18dc 100644 --- a/libcxx/include/__config +++ b/libcxx/include/__config @@ -336,6 +336,10 @@ typedef __char32_t char32_t; #define _LIBCPP_HAS_NO_CXX14_CONSTEXPR #endif +#if !(__has_feature(cxx_variable_templates)) +#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES +#endif + #if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L #if defined(__FreeBSD__) #define _LIBCPP_HAS_QUICK_EXIT @@ -415,6 +419,8 @@ namespace std { // No version of GCC supports relaxed constexpr rules #define _LIBCPP_HAS_NO_CXX14_CONSTEXPR +// GCC 5 will support variable templates +#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES #define _NOEXCEPT throw() #define _NOEXCEPT_(x) @@ -486,6 +492,7 @@ using namespace _LIBCPP_NAMESPACE __attribute__((__strong__)); #define _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER #define _LIBCPP_HAS_NO_CONSTEXPR #define _LIBCPP_HAS_NO_CXX14_CONSTEXPR +#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES #define _LIBCPP_HAS_NO_UNICODE_CHARS #define _LIBCPP_HAS_NO_DELETED_FUNCTIONS #define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS @@ -528,6 +535,7 @@ namespace std { #define _LIBCPP_HAS_NO_NULLPTR #define _LIBCPP_HAS_NO_UNICODE_CHARS #define _LIBCPP_HAS_IS_BASE_OF +#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES #if defined(_AIX) #define __MULTILOCALE_API diff --git a/libcxx/include/experimental/chrono b/libcxx/include/experimental/chrono index 738ded8824b..ca9e5f852ea 100644 --- a/libcxx/include/experimental/chrono +++ b/libcxx/include/experimental/chrono @@ -45,12 +45,12 @@ inline namespace fundamentals_v1 { _LIBCPP_BEGIN_NAMESPACE_CHRONO_LFTS -#if __has_feature(cxx_variable_templates) +#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES template <class _Rep> _LIBCPP_CONSTEXPR bool treat_as_floating_point_v = treat_as_floating_point<_Rep>::value; -#endif /* __has_feature(cxx_variable_templates) */ +#endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */ _LIBCPP_END_NAMESPACE_CHRONO_LFTS diff --git a/libcxx/include/experimental/ratio b/libcxx/include/experimental/ratio index a393cef6e0d..a00a2530edd 100644 --- a/libcxx/include/experimental/ratio +++ b/libcxx/include/experimental/ratio @@ -48,7 +48,7 @@ inline namespace fundamentals_v1 { _LIBCPP_BEGIN_NAMESPACE_LFTS -#if __has_feature(cxx_variable_templates) +#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES template <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_equal_v = ratio_equal<_R1, _R2>::value; @@ -68,7 +68,7 @@ template <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_greater_v template <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_greater_equal_v = ratio_greater_equal<_R1, _R2>::value; -#endif /* __has_feature(cxx_variable_templates) */ +#endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */ _LIBCPP_END_NAMESPACE_LFTS diff --git a/libcxx/include/experimental/system_error b/libcxx/include/experimental/system_error index 9b9ab333b5a..2ec23854461 100644 --- a/libcxx/include/experimental/system_error +++ b/libcxx/include/experimental/system_error @@ -46,7 +46,7 @@ inline namespace fundamentals_v1 { _LIBCPP_BEGIN_NAMESPACE_LFTS -#if __has_feature(cxx_variable_templates) +#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES template <class _Tp> _LIBCPP_CONSTEXPR bool is_error_code_enum_v = is_error_code_enum<_Tp>::value; @@ -54,7 +54,7 @@ template <class _Tp> _LIBCPP_CONSTEXPR bool is_error_code_enum_v template <class _Tp> _LIBCPP_CONSTEXPR bool is_error_condition_enum_v = is_error_condition_enum<_Tp>::value; -#endif /* __has_feature(cxx_variable_templates) */ +#endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */ _LIBCPP_END_NAMESPACE_LFTS diff --git a/libcxx/include/experimental/type_traits b/libcxx/include/experimental/type_traits index 35cdada15eb..ae49fc176c0 100644 --- a/libcxx/include/experimental/type_traits +++ b/libcxx/include/experimental/type_traits @@ -190,7 +190,7 @@ inline namespace fundamentals_v1 { _LIBCPP_BEGIN_NAMESPACE_LFTS -#if __has_feature(cxx_variable_templates) +#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES // C++14 20.10.4.1, primary type categories @@ -397,7 +397,7 @@ template <class _Tp, class _Up> _LIBCPP_CONSTEXPR bool is_base_of_v template <class _Tp, class _Up> _LIBCPP_CONSTEXPR bool is_convertible_v = is_convertible<_Tp, _Up>::value; -#endif /* __has_feature(cxx_variable_templates) */ +#endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */ // 3.3.2, Other type transformations /* |

