File tree Expand file tree Collapse file tree 3 files changed +16
-1
lines changed
std/tests/P0896R4_views_join Expand file tree Collapse file tree 3 files changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -3068,6 +3068,19 @@ namespace ranges {
3068
3068
requires view<_Vw> && input_range<range_reference_t<_Vw>>
3069
3069
class join_view : public _Join_view_base<_Vw> {
3070
3070
// clang-format on
3071
+
3072
+ #ifndef _USE_JOIN_VIEW_INPUT_RANGE
3073
+ static_assert(forward_range<_Vw>,
3074
+ "Due to a design flaw, join_view can misbehave "
3075
+ "with some input-only ranges (see https://wg21.link/lwg3698). "
3076
+ "We believe that WG21 will be unable to fix this problem without breaking ABI. "
3077
+ "To minimize breakage when a fix is implemented, "
3078
+ "we are temporarily disabling potentially problematic cases. "
3079
+ "You can define _USE_JOIN_VIEW_INPUT_RANGE to suppress this diagnostic, "
3080
+ "but be aware that you will almost certainly need to recompile "
3081
+ "when we release a fix.");
3082
+ #endif // _USE_JOIN_VIEW_INPUT_RANGE
3083
+
3071
3084
private:
3072
3085
template <bool _Const>
3073
3086
using _InnerRng = range_reference_t<_Maybe_const<_Const, _Vw>>;
Original file line number Diff line number Diff line change 4
4
RUNALL_INCLUDE ..\universal_prefix.lst
5
5
RUNALL_CROSSLIST
6
6
# TRANSITION, LLVM-53957: _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS belongs to llvm-project/libcxx/test/support/msvc_stdlib_force_include.h
7
- PM_CL="/EHsc /MTd /std:c++latest /permissive- /FImsvc_stdlib_force_include.h /wd4643 /D_STL_CALL_ABORT_INSTEAD_OF_INVALID_PARAMETER /D_SILENCE_ALL_CXX23_DEPRECATION_WARNINGS"
7
+ PM_CL="/EHsc /MTd /std:c++latest /permissive- /FImsvc_stdlib_force_include.h /wd4643 /D_STL_CALL_ABORT_INSTEAD_OF_INVALID_PARAMETER /D_SILENCE_ALL_CXX23_DEPRECATION_WARNINGS /D_USE_JOIN_VIEW_INPUT_RANGE "
8
8
RUNALL_CROSSLIST
9
9
PM_CL="/analyze:autolog- /Zc:preprocessor"
10
10
PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing"
Original file line number Diff line number Diff line change 1
1
// Copyright (c) Microsoft Corporation.
2
2
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
3
3
4
+ #define _USE_JOIN_VIEW_INPUT_RANGE
5
+
4
6
#include < algorithm>
5
7
#include < array>
6
8
#include < cassert>
You can’t perform that action at this time.
0 commit comments