Skip to content

Commit d4e29f5

Browse files
burblebeetkoeppe
authored andcommitted
LWG3814 Add freestanding items requested by NB comments
Fixes NB GB 085, GB 110, (partially) GB 130 (C++23 CD).
1 parent abe6947 commit d4e29f5

File tree

3 files changed

+24
-22
lines changed

3 files changed

+24
-22
lines changed

source/memory.tex

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,21 +86,22 @@
8686

8787
// \ref{obj.lifetime}, explicit lifetime management
8888
template<class T>
89-
T* start_lifetime_as(void* p) noexcept;
89+
T* start_lifetime_as(void* p) noexcept; // freestanding
9090
template<class T>
91-
const T* start_lifetime_as(const void* p) noexcept;
91+
const T* start_lifetime_as(const void* p) noexcept; // freestanding
9292
template<class T>
93-
volatile T* start_lifetime_as(volatile void* p) noexcept;
93+
volatile T* start_lifetime_as(volatile void* p) noexcept; // freestanding
9494
template<class T>
95-
const volatile T* start_lifetime_as(const volatile void* p) noexcept;
95+
const volatile T* start_lifetime_as(const volatile void* p) noexcept; // freestanding
9696
template<class T>
97-
T* start_lifetime_as_array(void* p, size_t n) noexcept;
97+
T* start_lifetime_as_array(void* p, size_t n) noexcept; // freestanding
9898
template<class T>
99-
const T* start_lifetime_as_array(const void* p, size_t n) noexcept;
99+
const T* start_lifetime_as_array(const void* p, size_t n) noexcept; // freestanding
100100
template<class T>
101-
volatile T* start_lifetime_as_array(volatile void* p, size_t n) noexcept;
101+
volatile T* start_lifetime_as_array(volatile void* p, size_t n) noexcept; // freestanding
102102
template<class T>
103-
const volatile T* start_lifetime_as_array(const volatile void* p, size_t n) noexcept;
103+
const volatile T* start_lifetime_as_array(const volatile void* p, // freestanding
104+
size_t n) noexcept;
104105

105106
// \ref{allocator.tag}, allocator argument tag
106107
struct allocator_arg_t { // freestanding

source/ranges.tex

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -214,9 +214,9 @@
214214
template<@\libconcept{move_constructible}@ W, @\libconcept{semiregular}@ Bound = unreachable_sentinel_t>
215215
requires (is_object_v<W> && @\libconcept{same_as}@<W, remove_cv_t<W>>
216216
&& (@\exposid{is-integer-like}@<Bound> || @\libconcept{same_as}@<Bound, unreachable_sentinel_t>))
217-
class repeat_view;
217+
class repeat_view; // freestanding
218218

219-
namespace views { inline constexpr @\unspec@ repeat = @\unspec@; }
219+
namespace views { inline constexpr @\unspecnc@ repeat = @\unspecnc@; } // freestanding
220220

221221
// \ref{range.istream}, istream view
222222
template<@\libconcept{movable}@ Val, class CharT, class Traits = char_traits<CharT>>
@@ -513,19 +513,20 @@
513513
// \ref{range.stride}, stride view
514514
template<@\libconcept{input_range}@ V>
515515
requires @\libconcept{view}@<V>
516-
class stride_view;
516+
class stride_view; // freestanding
517517

518518
template<class V>
519-
inline constexpr bool enable_borrowed_range<stride_view<V>> = enable_borrowed_range<V>;
519+
inline constexpr bool enable_borrowed_range<stride_view<V>> = // freestanding
520+
enable_borrowed_range<V>;
520521

521-
namespace views { inline constexpr @\unspecnc@ stride = @\unspecnc@; }
522+
namespace views { inline constexpr @\unspecnc@ stride = @\unspecnc@; } // freestanding
522523

523524
// \ref{range.cartesian}, cartesian product view
524525
template<@\libconcept{input_range}@ First, @\libconcept{forward_range}@... Vs>
525526
requires (@\libconcept{view}@<First> && ... && @\libconcept{view}@<Vs>)
526-
class cartesian_product_view;
527+
class cartesian_product_view; // freestanding
527528

528-
namespace views { inline constexpr @\unspecnc@ cartesian_product = @\unspecnc@; }
529+
namespace views { inline constexpr @\unspecnc@ cartesian_product = @\unspecnc@; } // freestanding
529530
}
530531

531532
namespace std {

source/threads.tex

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2049,13 +2049,13 @@
20492049
\begin{codeblock}
20502050
namespace std {
20512051
// \ref{atomics.order}, order and consistency
2052-
enum class memory_order : @\unspec@; // freestanding
2053-
inline constexpr memory_order memory_order_relaxed = memory_order::relaxed;
2054-
inline constexpr memory_order memory_order_consume = memory_order::consume;
2055-
inline constexpr memory_order memory_order_acquire = memory_order::acquire;
2056-
inline constexpr memory_order memory_order_release = memory_order::release;
2057-
inline constexpr memory_order memory_order_acq_rel = memory_order::acq_rel;
2058-
inline constexpr memory_order memory_order_seq_cst = memory_order::seq_cst;
2052+
enum class memory_order : @\unspecnc@; // freestanding
2053+
inline constexpr memory_order memory_order_relaxed = memory_order::relaxed; // freestanding
2054+
inline constexpr memory_order memory_order_consume = memory_order::consume; // freestanding
2055+
inline constexpr memory_order memory_order_acquire = memory_order::acquire; // freestanding
2056+
inline constexpr memory_order memory_order_release = memory_order::release; // freestanding
2057+
inline constexpr memory_order memory_order_acq_rel = memory_order::acq_rel; // freestanding
2058+
inline constexpr memory_order memory_order_seq_cst = memory_order::seq_cst; // freestanding
20592059

20602060
template<class T>
20612061
T kill_dependency(T y) noexcept; // freestanding

0 commit comments

Comments
 (0)