new expression
From cppreference.com
Creates and initializes objects with dynamic storage duration, that is, objects whose lifetime is not necessarily limited by the scope in which they were created.
Syntax
::(optional) new (type ) new-initializer (optional)
|
(1) | ||||||||
::(optional) new type new-initializer (optional)
|
(2) | ||||||||
::(optional) new (placement-args ) (type ) new-initializer (optional)
|
(3) | ||||||||
::(optional) new (placement-args ) type new-initializer (optional)
|
(4) | ||||||||
1,2) Attempts to create an object of type, denoted by the type-id type, which may be array type, and may include a placeholder type specifier(since C++11), or include a class template name whose argument is to be deduced by class template argument deduction(since C++17).
3,4) Same as (1,2), but provides additional arguments to the allocation function, see placement
new.Explanation
| type | - | the target type-id |
| new-initializer | - | a parentheses-enclosed expression list or a |