Namespaces
Variants

new expression

From cppreference.com
 
 
C++ language
General topics
Flow control
Conditional execution statements
if
Iteration statements (loops)
for
range-for (C++11)
Jump statements
Functions
Function declaration
Lambda function expression
inline specifier
Dynamic exception specifications (until C++17*)
noexcept specifier (C++11)
Exceptions
Namespaces
Types
Specifiers
const/volatile
decltype (C++11)
auto (C++11)
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Storage duration specifiers
Initialization
Expressions
Alternative representations
Literals
Boolean - Integer - Floating-point
Character - String - nullptr (C++11)
User-defined (C++11)
Utilities
Attributes (C++11)
Types
typedef declaration
Type alias declaration (C++11)
Casts
Memory allocation
Classes
Class-specific function properties
explicit (C++11)
static

Special member functions
Templates
Miscellaneous
 
 

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