From Jason Turner

[new.syn]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp0nnlr0zc/{from.md → to.md} +55 -0
tmp/tmp0nnlr0zc/{from.md → to.md} RENAMED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### Header `<new>` synopsis <a id="new.syn">[[new.syn]]</a>
2
+
3
+ ``` cpp
4
+ namespace std {
5
+ class bad_alloc;
6
+ class bad_array_new_length;
7
+ enum class align_val_t : size_t {};
8
+ struct nothrow_t { explicit nothrow_t() = default; };
9
+ extern const nothrow_t nothrow;
10
+ using new_handler = void (*)();
11
+ new_handler get_new_handler() noexcept;
12
+ new_handler set_new_handler(new_handler new_p) noexcept;
13
+
14
+ // [ptr.launder], pointer optimization barrier
15
+ template <class T> constexpr T* launder(T* p) noexcept;
16
+
17
+ // [hardware.interference], hardware interference size
18
+ inline constexpr size_t hardware_destructive_interference_size = implementation-defined{};
19
+ inline constexpr size_t hardware_constructive_interference_size = implementation-defined{};
20
+ }
21
+
22
+ void* operator new(std::size_t size);
23
+ void* operator new(std::size_t size, std::align_val_t alignment);
24
+ void* operator new(std::size_t size, const std::nothrow_t&) noexcept;
25
+ void* operator new(std::size_t size, std::align_val_t alignment,
26
+ const std::nothrow_t&) noexcept;
27
+ void operator delete(void* ptr) noexcept;
28
+ void operator delete(void* ptr, std::size_t size) noexcept;
29
+ void operator delete(void* ptr, std::align_val_t alignment) noexcept;
30
+ void operator delete(void* ptr, std::size_t size, std::align_val_t alignment) noexcept;
31
+ void operator delete(void* ptr, const std::nothrow_t&) noexcept;
32
+ void operator delete(void* ptr, std::align_val_t alignment,
33
+ const std::nothrow_t&) noexcept;
34
+ void* operator new[](std::size_t size);
35
+ void* operator new[](std::size_t size, std::align_val_t alignment);
36
+ void* operator new[](std::size_t size, const std::nothrow_t&) noexcept;
37
+ void* operator new[](std::size_t size, std::align_val_t alignment,
38
+ const std::nothrow_t&) noexcept;
39
+ void operator delete[](void* ptr) noexcept;
40
+ void operator delete[](void* ptr, std::size_t size) noexcept;
41
+ void operator delete[](void* ptr, std::align_val_t alignment) noexcept;
42
+ void operator delete[](void* ptr, std::size_t size, std::align_val_t alignment) noexcept;
43
+ void operator delete[](void* ptr, const std::nothrow_t&) noexcept;
44
+ void operator delete[](void* ptr, std::align_val_t alignment,
45
+ const std::nothrow_t&) noexcept;
46
+
47
+ void* operator new (std::size_t size, void* ptr) noexcept;
48
+ void* operator new[](std::size_t size, void* ptr) noexcept;
49
+ void operator delete (void* ptr, void*) noexcept;
50
+ void operator delete[](void* ptr, void*) noexcept;
51
+ ```
52
+
53
+   [[intro.memory]], [[basic.stc.dynamic]], [[expr.new]],
54
+ [[expr.delete]], [[class.free]], [[memory]].
55
+