libstdc++: Fix preprocessor condition for inline variables
authorJonathan Wakely <jwakely@redhat.com>
Thu, 9 Mar 2023 15:04:45 +0000 (15:04 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Tue, 14 Mar 2023 10:28:38 +0000 (10:28 +0000)
Although variable templates are valid in C++14, inline ones aren't.
These are only used in C++17 (or later) code, so they don't need to be
defined for C++14.

libstdc++-v3/ChangeLog:

* include/bits/chrono.h (__is_duration_v, __is_time_point_v):
Only define for C++17 and later.

libstdc++-v3/include/bits/chrono.h

index b2e4f4c..fb99fe5 100644 (file)
@@ -244,7 +244,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       using __disable_if_is_duration
        = typename enable_if<!__is_duration<_Tp>::value, _Tp>::type;
 
-#if __cpp_variable_templates
+#if __cplusplus >= 201703L
     template<typename _Tp>
       inline constexpr bool __is_duration_v = false;
     template<typename _Rep, typename _Period>