зеркало из https://github.com/microsoft/STL.git
Support For Incomplete Types In reference_wrapper (#393)
* Implement P0357R3 * Update LLVM to get skip of libcxx\test\std\utilities\function.objects\refwrap\weak_result.pass.cpp, and exclude "// REQUIRES: c++98 || c++03 || c++11 || c++14 || c++17" as a 'magic comment'. Co-authored-by: Billy O'Neal <billy.oneal@gmail.com> Co-authored-by: Casey Carter <cartec69@gmail.com>
This commit is contained in:
Родитель
31bed7ae0d
Коммит
d862650bd5
|
@ -1 +1 @@
|
|||
Subproject commit 0b969fa9ccf595abc31942e5d14be784707e960c
|
||||
Subproject commit 85ee4ff4e474788abc7abdc939114281c2a68ec1
|
|
@ -1845,7 +1845,11 @@ template <class _Ty, class _Uty>
|
|||
struct _Refwrap_has_ctor_from<_Ty, _Uty, void_t<decltype(_Refwrap_ctor_fun<_Ty>(_STD declval<_Uty>()))>> : true_type {};
|
||||
|
||||
template <class _Ty>
|
||||
class reference_wrapper : public _Weak_types<_Ty>::type { // stand-in for an assignable reference
|
||||
class reference_wrapper
|
||||
#if !_HAS_CXX20
|
||||
: public _Weak_types<_Ty>::type
|
||||
#endif // !_HAS_CXX20
|
||||
{
|
||||
public:
|
||||
static_assert(is_object_v<_Ty> || is_function_v<_Ty>,
|
||||
"reference_wrapper<T> requires T to be an object type or a function type.");
|
||||
|
|
|
@ -130,6 +130,7 @@
|
|||
// P0318R1 unwrap_reference, unwrap_ref_decay
|
||||
// P0325R4 to_array()
|
||||
// P0356R5 bind_front()
|
||||
// P0357R3 Supporting Incomplete Types In reference_wrapper
|
||||
// P0439R0 enum class memory_order
|
||||
// P0457R2 starts_with()/ends_with() For basic_string/basic_string_view
|
||||
// P0458R2 contains() For Ordered And Unordered Associative Containers
|
||||
|
|
|
@ -2,4 +2,5 @@
|
|||
// REQUIRES: c++11 || c++14
|
||||
// REQUIRES: c++98 || c++03
|
||||
// REQUIRES: c++98 || c++03 || c++11 || c++14
|
||||
// REQUIRES: c++98 || c++03 || c++11 || c++14 || c++17
|
||||
// UNSUPPORTED: c++14, c++17, c++2a
|
||||
|
|
Загрузка…
Ссылка в новой задаче