Skip to content

Commit e472b13

Browse files
authored
LWG-3621 Remove feature-test macro __cpp_lib_monadic_optional (#2543)
1 parent 3f5b8ff commit e472b13

File tree

2 files changed

+13
-22
lines changed

2 files changed

+13
-22
lines changed

stl/inc/yvals_core.h

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1366,12 +1366,7 @@
13661366
#define __cpp_lib_byteswap 202110L
13671367
#define __cpp_lib_invoke_r 202106L
13681368
#define __cpp_lib_is_scoped_enum 202011L
1369-
1370-
#ifdef __cpp_lib_concepts
1371-
#define __cpp_lib_monadic_optional 202110L
1372-
#endif // __cpp_lib_concepts
1373-
1374-
#define __cpp_lib_move_only_function 202110L
1369+
#define __cpp_lib_move_only_function 202110L
13751370

13761371
#ifdef __cpp_lib_concepts
13771372
#define __cpp_lib_out_ptr 202106L
@@ -1409,7 +1404,9 @@
14091404
#endif // language mode
14101405
#endif // _M_CEE
14111406

1412-
#if _HAS_CXX20
1407+
#if _HAS_CXX23 && defined(__cpp_lib_concepts)
1408+
#define __cpp_lib_optional 202110L // P0798R8 Monadic Operations For optional
1409+
#elif _HAS_CXX20 // ^^^ _HAS_CXX23 / _HAS_CXX20 vvv
14131410
#define __cpp_lib_optional 202106L // P2231R1 Completing constexpr In optional And variant
14141411
#elif _HAS_CXX17 // ^^^ _HAS_CXX20 / _HAS_CXX17 vvv
14151412
#define __cpp_lib_optional 201606L // P0307R2 Making Optional Greater Equal Again

tests/std/tests/VSO_0157762_feature_test_macros/test.compile.pass.cpp

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1192,20 +1192,6 @@ STATIC_ASSERT(__cpp_lib_memory_resource == 201603L);
11921192
#endif
11931193
#endif
11941194

1195-
#if _HAS_CXX23 && !defined(__EDG__) // TRANSITION, EDG concepts support
1196-
#ifndef __cpp_lib_monadic_optional
1197-
#error __cpp_lib_monadic_optional is not defined
1198-
#elif __cpp_lib_monadic_optional != 202110L
1199-
#error __cpp_lib_monadic_optional is not 202110L
1200-
#else
1201-
STATIC_ASSERT(__cpp_lib_monadic_optional == 202110L);
1202-
#endif
1203-
#else
1204-
#ifdef __cpp_lib_monadic_optional
1205-
#error __cpp_lib_monadic_optional is defined
1206-
#endif
1207-
#endif
1208-
12091195
#if _HAS_CXX23
12101196
#ifndef __cpp_lib_move_only_function
12111197
#error __cpp_lib_move_only_function is not defined
@@ -1264,7 +1250,15 @@ STATIC_ASSERT(__cpp_lib_not_fn == 201603L);
12641250
STATIC_ASSERT(__cpp_lib_null_iterators == 201304L);
12651251
#endif
12661252

1267-
#if _HAS_CXX20
1253+
#if _HAS_CXX23 && !defined(__EDG__) // TRANSITION, EDG concepts support
1254+
#ifndef __cpp_lib_optional
1255+
#error __cpp_lib_optional is not defined
1256+
#elif __cpp_lib_optional != 202110L
1257+
#error __cpp_lib_optional is not 202110L
1258+
#else
1259+
STATIC_ASSERT(__cpp_lib_optional == 202110L);
1260+
#endif
1261+
#elif _HAS_CXX20
12681262
#ifndef __cpp_lib_optional
12691263
#error __cpp_lib_optional is not defined
12701264
#elif __cpp_lib_optional != 202106L

0 commit comments

Comments
 (0)