[gcc r13-6658] libstdc++: Fix preprocessor condition for inline variables

Jonathan Wakely redi@gcc.gnu.org
Tue Mar 14 10:28:58 GMT 2023


https://gcc.gnu.org/g:4d771291f70dab571e7c18f9f5f8af4f27737244

commit r13-6658-g4d771291f70dab571e7c18f9f5f8af4f27737244
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Mar 9 15:04:45 2023 +0000

    libstdc++: Fix preprocessor condition for inline variables
    
    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.

Diff:
---
 libstdc++-v3/include/bits/chrono.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libstdc++-v3/include/bits/chrono.h b/libstdc++-v3/include/bits/chrono.h
index b2e4f4c33a8..fb99fe5eed7 100644
--- a/libstdc++-v3/include/bits/chrono.h
+++ b/libstdc++-v3/include/bits/chrono.h
@@ -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>


More information about the Libstdc++-cvs mailing list