diff --git a/stl/inc/tuple b/stl/inc/tuple index f5e120cf39f..c49a9205c5f 100644 --- a/stl/inc/tuple +++ b/stl/inc/tuple @@ -1053,7 +1053,7 @@ _NODISCARD constexpr typename _Tuple_cat1<_Tuples...>::_Ret tuple_cat(_Tuples&&. using _Ret = typename _Cat1::_Ret; using _Kx_seq = typename _Cat1::_Kx_seq; using _Ix_seq = typename _Cat1::_Ix_seq; - return _Tuple_cat<_Ret>(_Kx_seq{}, _Ix_seq{}, _STD forward_as_tuple(_STD forward<_Tuples>(_Tpls)...)); + return _STD _Tuple_cat<_Ret>(_Kx_seq{}, _Ix_seq{}, _STD forward_as_tuple(_STD forward<_Tuples>(_Tpls)...)); } #if _HAS_CXX17 @@ -1073,9 +1073,9 @@ _EXPORT_STD template _EXPORT_STD template #endif // ^^^ !_HAS_CXX23 ^^^ constexpr decltype(auto) apply(_Callable&& _Obj, _Tuple&& _Tpl) noexcept( - noexcept(_Apply_impl(_STD forward<_Callable>(_Obj), _STD forward<_Tuple>(_Tpl), + noexcept(_STD _Apply_impl(_STD forward<_Callable>(_Obj), _STD forward<_Tuple>(_Tpl), make_index_sequence>>{}))) { - return _Apply_impl(_STD forward<_Callable>(_Obj), _STD forward<_Tuple>(_Tpl), + return _STD _Apply_impl(_STD forward<_Callable>(_Obj), _STD forward<_Tuple>(_Tpl), make_index_sequence>>{}); } @@ -1097,10 +1097,10 @@ _EXPORT_STD template #else // ^^^ _HAS_CXX23 / !_HAS_CXX23 vvv _EXPORT_STD template #endif // ^^^ !_HAS_CXX23 ^^^ -_NODISCARD constexpr _Ty make_from_tuple(_Tuple&& _Tpl) noexcept(noexcept(_Make_from_tuple_impl<_Ty>( +_NODISCARD constexpr _Ty make_from_tuple(_Tuple&& _Tpl) noexcept(noexcept(_STD _Make_from_tuple_impl<_Ty>( _STD forward<_Tuple>(_Tpl), make_index_sequence>>{}))) /* strengthened */ { // construct _Ty from the elements of _Tpl - return _Make_from_tuple_impl<_Ty>( + return _STD _Make_from_tuple_impl<_Ty>( _STD forward<_Tuple>(_Tpl), make_index_sequence>>{}); } #endif // _HAS_CXX17 diff --git a/stl/inc/utility b/stl/inc/utility index 3206659c1be..458091fb313 100644 --- a/stl/inc/utility +++ b/stl/inc/utility @@ -304,7 +304,8 @@ struct pair { // store a pair of values template constexpr pair(_Tuple1& _Val1, _Tuple2& _Val2, index_sequence<_Indices1...>, index_sequence<_Indices2...>) - : first(_Tuple_get<_Indices1>(_STD move(_Val1))...), second(_Tuple_get<_Indices2>(_STD move(_Val2))...) {} + : first(_STD _Tuple_get<_Indices1>(_STD move(_Val1))...), + second(_STD _Tuple_get<_Indices2>(_STD move(_Val2))...) {} template _CONSTEXPR20 pair(piecewise_construct_t, tuple<_Types1...> _Val1, tuple<_Types2...> _Val2) diff --git a/tests/std/tests/Dev11_0000000_tuple_cat/test.cpp b/tests/std/tests/Dev11_0000000_tuple_cat/test.cpp index 78a23775861..dec106b5eae 100644 --- a/tests/std/tests/Dev11_0000000_tuple_cat/test.cpp +++ b/tests/std/tests/Dev11_0000000_tuple_cat/test.cpp @@ -3,6 +3,7 @@ #include #include +#include #include #include #include @@ -10,6 +11,10 @@ #include #include +#if _HAS_CXX17 +#include +#endif // _HAS_CXX17 + #if _HAS_CXX20 #include #include @@ -21,8 +26,26 @@ using namespace std; #define STATIC_ASSERT(...) static_assert(__VA_ARGS__, #__VA_ARGS__) +#if _HAS_CXX17 +#define CONSTEXPR17 constexpr +#else // ^^^ _HAS_CXX17 / !_HAS_CXX17 vvv +#define CONSTEXPR17 inline +#endif // ^^^ !_HAS_CXX17 ^^^ + +#if _HAS_CXX20 +#define CONSTEXPR20 constexpr +#else // ^^^ _HAS_CXX20 / !_HAS_CXX20 vvv +#define CONSTEXPR20 inline +#endif // ^^^ !_HAS_CXX20 ^^^ + +#if _HAS_CXX23 +#define CONSTEXPR23 constexpr +#else // ^^^ _HAS_CXX23 / !_HAS_CXX23 vvv +#define CONSTEXPR23 inline +#endif // ^^^ !_HAS_CXX23 ^^^ + template