[committed] libstdc++: Change class-key for duration and time_point to class

Message ID 20221209003551.443038-1-jwakely@redhat.com
State Committed
Commit 7eec3114ebe8d4c55c64b4e47546d3d8f95eb09b
Headers
Series [committed] libstdc++: Change class-key for duration and time_point to class |

Commit Message

Jonathan Wakely Dec. 9, 2022, 12:35 a.m. UTC
  Tested x86_64-linux. Pushed to trunk.

-- >8 --

We define these with the 'struct' keyword, but the standard uses
'class'. This results in warnings if users try to refer to them using
elaborated type specifiers.

libstdc++-v3/ChangeLog:

	* include/bits/chrono.h (duration, time_point): Change 'struct'
	to 'class'.
---
 libstdc++-v3/include/bits/chrono.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
  

Patch

diff --git a/libstdc++-v3/include/bits/chrono.h b/libstdc++-v3/include/bits/chrono.h
index cabf61264d8..496e9485a73 100644
--- a/libstdc++-v3/include/bits/chrono.h
+++ b/libstdc++-v3/include/bits/chrono.h
@@ -59,11 +59,11 @@  _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
     /// `chrono::duration` represents a distance between two points in time
     template<typename _Rep, typename _Period = ratio<1>>
-      struct duration;
+      class duration;
 
     /// `chrono::time_point` represents a point in time as measured by a clock
     template<typename _Clock, typename _Dur = typename _Clock::duration>
-      struct time_point;
+      class time_point;
     /// @}
   }
 
@@ -431,14 +431,13 @@  _GLIBCXX_BEGIN_NAMESPACE_VERSION
     /// @endcond
 
     template<typename _Rep, typename _Period>
-      struct duration
+      class duration
       {
 	static_assert(!__is_duration<_Rep>::value, "rep cannot be a duration");
 	static_assert(__is_ratio<_Period>::value,
 		      "period must be a specialization of ratio");
 	static_assert(_Period::num > 0, "period must be positive");
 
-      private:
 	template<typename _Rep2>
 	  using __is_float = treat_as_floating_point<_Rep2>;
 
@@ -844,11 +843,12 @@  _GLIBCXX_BEGIN_NAMESPACE_VERSION
 #undef _GLIBCXX_CHRONO_INT64_T
 
     template<typename _Clock, typename _Dur>
-      struct time_point
+      class time_point
       {
 	static_assert(__is_duration<_Dur>::value,
 	    "duration must be a specialization of std::chrono::duration");
 
+      public:
 	typedef _Clock						clock;
 	typedef _Dur						duration;
 	typedef typename duration::rep				rep;