diff --git a/stl/inc/array b/stl/inc/array index 1513b3829b..39caaa5931 100644 --- a/stl/inc/array +++ b/stl/inc/array @@ -433,7 +433,7 @@ public: } _CONSTEXPR20 void swap(array& _Other) noexcept(_Is_nothrow_swappable<_Ty>::value) { - _Swap_ranges_unchecked(_Elems, _Elems + _Size, _Other._Elems); + _STD _Swap_ranges_unchecked(_Elems, _Elems + _Size, _Other._Elems); } _NODISCARD _CONSTEXPR17 iterator begin() noexcept { @@ -834,7 +834,7 @@ _NODISCARD constexpr array, _Size> to_array(_Ty (&_Array)[_Size "to_array does not accept multidimensional arrays."); static_assert(is_constructible_v<_Ty, _Ty&>, "N4950 [array.creation]/1: " "to_array requires copy constructible elements."); - return _To_array_lvalue_impl(_Array, make_index_sequence<_Size>{}); + return _STD _To_array_lvalue_impl(_Array, make_index_sequence<_Size>{}); } _EXPORT_STD template @@ -843,7 +843,7 @@ _NODISCARD constexpr array, _Size> to_array(_Ty (&&_Array)[_Siz "to_array does not accept multidimensional arrays."); static_assert(is_move_constructible_v<_Ty>, "N4950 [array.creation]/4: " "to_array requires move constructible elements."); - return _To_array_rvalue_impl(_STD move(_Array), make_index_sequence<_Size>{}); + return _STD _To_array_rvalue_impl(_STD move(_Array), make_index_sequence<_Size>{}); } #endif // _HAS_CXX20 diff --git a/tests/std/tests/P0325R4_to_array/test.cpp b/tests/std/tests/P0325R4_to_array/test.cpp index ccdbbdcecb..adf4c3ae53 100644 --- a/tests/std/tests/P0325R4_to_array/test.cpp +++ b/tests/std/tests/P0325R4_to_array/test.cpp @@ -53,6 +53,21 @@ void assert_not_constexpr() { assert_equal(to_array({"cats"s, "go"s, "meow"s}), array{"cats", "go", "meow"}); } +#ifndef _M_CEE // TRANSITION, VSO-1659496 +struct incomplete; + +template +struct holder { + T t; +}; + +void test_adl_proof() { // COMPILE-ONLY + holder* a[1]{}; + (void) std::to_array(a); // intentionally qualified to avoid ADL + (void) std::to_array(std::move(a)); // intentionally qualified to avoid ADL +} +#endif // _M_CEE + int main() { assert(assert_constexpr()); static_assert(assert_constexpr());