◐ Shell
clean mode source ↗

std::pmr::polymorphic_allocator<T>::new_object - cppreference.com

提供: cppreference.com

<tbody> </tbody>

template< class U, class CtorArgs... > [[nodiscard]] U* new_object( CtorArgs&&... ctor_args );

(C++20以上)

U 型のオブジェクトを確保および構築します。

以下と同等です。

U* p = allocate_object<U>();
try {
  construct(p, std::forward<CtorArgs>(ctor_args)...);
} catch (...) {
  deallocate_object(p);
  throw;
}
return p;

引数

ctor_args - U のコンストラクタに転送する引数

戻り値

確保および構築したオブジェクトを指すポインタ。

ノート

この関数は完全特殊化されたアロケータ std::polymorphic_allocator<> で使用するために導入されましたが、 std::polymorphic_allocator<T>std::polymorphic_allocator<U> に rebind する必要や allocateconstruct および deallocate を個別に呼ぶ必要を回避するためのショートカットとして任意の特殊化でも便利かもしれません。

U は推定されないため、この関数を呼ぶときはテンプレート引数として提供されなければなりません。

例外

allocate_object または U のコンストラクタへの呼び出しによって投げられるあらゆる例外が投げられる可能性があります。

関連項目