From a4eeb8220731f47d917bf9fc9419bbb2657f4732 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Thu, 11 Aug 2011 17:53:05 +0000 Subject: [PATCH] future: constexpr functions are implicitly inline. 2011-08-11 Paolo Carlini * include/std/future: constexpr functions are implicitly inline. * include/std/chrono: Likewise. * include/std/complex: Likewise. * include/bits/move.h: Likewise. * include/bits/stl_pair.h: Likewise. From-SVN: r177679 --- libstdc++-v3/ChangeLog | 8 ++++ libstdc++-v3/include/bits/move.h | 6 +-- libstdc++-v3/include/bits/stl_pair.h | 4 +- libstdc++-v3/include/std/chrono | 70 ++++++++++++++-------------- libstdc++-v3/include/std/complex | 6 +-- libstdc++-v3/include/std/future | 8 ++-- 6 files changed, 55 insertions(+), 47 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 7457de26519..c52b84912f2 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2011-08-11 Paolo Carlini + + * include/std/future: constexpr functions are implicitly inline. + * include/std/chrono: Likewise. + * include/std/complex: Likewise. + * include/bits/move.h: Likewise. + * include/bits/stl_pair.h: Likewise. + 2011-08-07 Jonathan Wakely * include/bits/alloc_traits.h: Fix doxygen @headername. diff --git a/libstdc++-v3/include/bits/move.h b/libstdc++-v3/include/bits/move.h index 28d2ae1b3ae..0af8fdac0b5 100644 --- a/libstdc++-v3/include/bits/move.h +++ b/libstdc++-v3/include/bits/move.h @@ -58,12 +58,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION /// forward (as per N3143) template - inline constexpr _Tp&& + constexpr _Tp&& forward(typename std::remove_reference<_Tp>::type& __t) noexcept { return static_cast<_Tp&&>(__t); } template - inline constexpr _Tp&& + constexpr _Tp&& forward(typename std::remove_reference<_Tp>::type&& __t) noexcept { static_assert(!std::is_lvalue_reference<_Tp>::value, "template argument" @@ -78,7 +78,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * @return Same, moved. */ template - inline constexpr typename std::remove_reference<_Tp>::type&& + constexpr typename std::remove_reference<_Tp>::type&& move(_Tp&& __t) noexcept { return static_cast::type&&>(__t); } diff --git a/libstdc++-v3/include/bits/stl_pair.h b/libstdc++-v3/include/bits/stl_pair.h index 967c86d718a..c4f33d0dcf6 100644 --- a/libstdc++-v3/include/bits/stl_pair.h +++ b/libstdc++-v3/include/bits/stl_pair.h @@ -275,8 +275,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #ifdef __GXX_EXPERIMENTAL_CXX0X__ // NB: DR 706. template - inline constexpr pair::__type, - typename __decay_and_strip<_T2>::__type> + constexpr pair::__type, + typename __decay_and_strip<_T2>::__type> make_pair(_T1&& __x, _T2&& __y) { typedef typename __decay_and_strip<_T1>::__type __ds_type1; diff --git a/libstdc++-v3/include/std/chrono b/libstdc++-v3/include/std/chrono index f64fd6e1e7b..4d2241ae475 100644 --- a/libstdc++-v3/include/std/chrono +++ b/libstdc++-v3/include/std/chrono @@ -168,8 +168,8 @@ _GLIBCXX_END_NAMESPACE_VERSION /// duration_cast template - inline constexpr typename enable_if<__is_duration<_ToDur>::value, - _ToDur>::type + constexpr typename enable_if<__is_duration<_ToDur>::value, + _ToDur>::type duration_cast(const duration<_Rep, _Period>& __d) { typedef typename _ToDur::period __to_period; @@ -352,8 +352,8 @@ _GLIBCXX_END_NAMESPACE_VERSION template - inline constexpr typename common_type, - duration<_Rep2, _Period2>>::type + constexpr typename common_type, + duration<_Rep2, _Period2>>::type operator+(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { @@ -365,8 +365,8 @@ _GLIBCXX_END_NAMESPACE_VERSION template - inline constexpr typename common_type, - duration<_Rep2, _Period2>>::type + constexpr typename common_type, + duration<_Rep2, _Period2>>::type operator-(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { @@ -386,7 +386,7 @@ _GLIBCXX_END_NAMESPACE_VERSION { typedef typename common_type<_Rep1, _Rep2>::type type; }; template - inline constexpr + constexpr duration::type, _Period> operator*(const duration<_Rep1, _Period>& __d, const _Rep2& __s) { @@ -396,13 +396,13 @@ _GLIBCXX_END_NAMESPACE_VERSION } template - inline constexpr + constexpr duration::type, _Period> operator*(const _Rep1& __s, const duration<_Rep2, _Period>& __d) { return __d * __s; } template - inline constexpr duration::value, _Rep2>::type>::type, _Period> operator/(const duration<_Rep1, _Period>& __d, const _Rep2& __s) { @@ -411,9 +411,9 @@ _GLIBCXX_END_NAMESPACE_VERSION return __cd(__cd(__d).count() / __s); } - template - inline constexpr typename common_type<_Rep1, _Rep2>::type + template + constexpr typename common_type<_Rep1, _Rep2>::type operator/(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { @@ -425,7 +425,7 @@ _GLIBCXX_END_NAMESPACE_VERSION // DR 934. template - inline constexpr duration::value, _Rep2>::type>::type, _Period> operator%(const duration<_Rep1, _Period>& __d, const _Rep2& __s) { @@ -434,10 +434,10 @@ _GLIBCXX_END_NAMESPACE_VERSION return __cd(__cd(__d).count() % __s); } - template - inline constexpr typename common_type, - duration<_Rep2, _Period2>>::type + template + constexpr typename common_type, + duration<_Rep2, _Period2>>::type operator%(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { @@ -450,7 +450,7 @@ _GLIBCXX_END_NAMESPACE_VERSION // comparisons template - inline constexpr bool + constexpr bool operator==(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { @@ -462,7 +462,7 @@ _GLIBCXX_END_NAMESPACE_VERSION template - inline constexpr bool + constexpr bool operator<(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { @@ -474,28 +474,28 @@ _GLIBCXX_END_NAMESPACE_VERSION template - inline constexpr bool + constexpr bool operator!=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { return !(__lhs == __rhs); } template - inline constexpr bool + constexpr bool operator<=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { return !(__rhs < __lhs); } template - inline constexpr bool + constexpr bool operator>(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { return __rhs < __lhs; } template - inline constexpr bool + constexpr bool operator>=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs) { return !(__lhs < __rhs); } @@ -575,8 +575,8 @@ _GLIBCXX_END_NAMESPACE_VERSION /// time_point_cast template - inline constexpr typename enable_if<__is_duration<_ToDur>::value, - time_point<_Clock, _ToDur>>::type + constexpr typename enable_if<__is_duration<_ToDur>::value, + time_point<_Clock, _ToDur>>::type time_point_cast(const time_point<_Clock, _Dur>& __t) { typedef time_point<_Clock, _ToDur> __time_point; @@ -585,7 +585,7 @@ _GLIBCXX_END_NAMESPACE_VERSION template - inline constexpr time_point<_Clock, + constexpr time_point<_Clock, typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> operator+(const time_point<_Clock, _Dur1>& __lhs, const duration<_Rep2, _Period2>& __rhs) @@ -598,7 +598,7 @@ _GLIBCXX_END_NAMESPACE_VERSION template - inline constexpr time_point<_Clock, + constexpr time_point<_Clock, typename common_type, _Dur2>::type> operator+(const duration<_Rep1, _Period1>& __lhs, const time_point<_Clock, _Dur2>& __rhs) @@ -611,7 +611,7 @@ _GLIBCXX_END_NAMESPACE_VERSION template - inline constexpr time_point<_Clock, + constexpr time_point<_Clock, typename common_type<_Dur1, duration<_Rep2, _Period2>>::type> operator-(const time_point<_Clock, _Dur1>& __lhs, const duration<_Rep2, _Period2>& __rhs) @@ -623,43 +623,43 @@ _GLIBCXX_END_NAMESPACE_VERSION } template - inline constexpr typename common_type<_Dur1, _Dur2>::type + constexpr typename common_type<_Dur1, _Dur2>::type operator-(const time_point<_Clock, _Dur1>& __lhs, const time_point<_Clock, _Dur2>& __rhs) { return __lhs.time_since_epoch() - __rhs.time_since_epoch(); } template - inline constexpr bool + constexpr bool operator==(const time_point<_Clock, _Dur1>& __lhs, const time_point<_Clock, _Dur2>& __rhs) { return __lhs.time_since_epoch() == __rhs.time_since_epoch(); } template - inline constexpr bool + constexpr bool operator!=(const time_point<_Clock, _Dur1>& __lhs, const time_point<_Clock, _Dur2>& __rhs) { return !(__lhs == __rhs); } template - inline constexpr bool + constexpr bool operator<(const time_point<_Clock, _Dur1>& __lhs, const time_point<_Clock, _Dur2>& __rhs) { return __lhs.time_since_epoch() < __rhs.time_since_epoch(); } template - inline constexpr bool + constexpr bool operator<=(const time_point<_Clock, _Dur1>& __lhs, const time_point<_Clock, _Dur2>& __rhs) { return !(__rhs < __lhs); } template - inline constexpr bool + constexpr bool operator>(const time_point<_Clock, _Dur1>& __lhs, const time_point<_Clock, _Dur2>& __rhs) { return __rhs < __lhs; } template - inline constexpr bool + constexpr bool operator>=(const time_point<_Clock, _Dur1>& __lhs, const time_point<_Clock, _Dur2>& __rhs) { return !(__lhs < __rhs); } diff --git a/libstdc++-v3/include/std/complex b/libstdc++-v3/include/std/complex index 0ce7e55343f..82ac62de61b 100644 --- a/libstdc++-v3/include/std/complex +++ b/libstdc++-v3/include/std/complex @@ -531,12 +531,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // Values #ifdef __GXX_EXPERIMENTAL_CXX0X__ template - inline constexpr _Tp + constexpr _Tp real(const complex<_Tp>& __z) { return __z.real(); } - + template - inline constexpr _Tp + constexpr _Tp imag(const complex<_Tp>& __z) { return __z.imag(); } #else diff --git a/libstdc++-v3/include/std/future b/libstdc++-v3/include/std/future index fc2d3248b01..497b964833f 100644 --- a/libstdc++-v3/include/std/future +++ b/libstdc++-v3/include/std/future @@ -129,25 +129,25 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION deferred = 2 }; - inline constexpr launch operator&(launch __x, launch __y) + constexpr launch operator&(launch __x, launch __y) { return static_cast( static_cast(__x) & static_cast(__y)); } - inline constexpr launch operator|(launch __x, launch __y) + constexpr launch operator|(launch __x, launch __y) { return static_cast( static_cast(__x) | static_cast(__y)); } - inline constexpr launch operator^(launch __x, launch __y) + constexpr launch operator^(launch __x, launch __y) { return static_cast( static_cast(__x) ^ static_cast(__y)); } - inline constexpr launch operator~(launch __x) + constexpr launch operator~(launch __x) { return static_cast(~static_cast(__x)); } inline launch& operator&=(launch& __x, launch __y)