Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      C++ named requirements:DefaultInsertable(since C++11)

      From cppreference.com
      <cpp‎ |named req
       
       
      C++ named requirements
       

      Specifies that an object of the type can be default-constructed in-place by a given allocator.

      Contents

      [edit]Requirements

      Given the following types, values and expressions:

      Type Definition
      T an object type
      A an allocator type
      X a container type satisfying all following conditions:
      Value Definition
      m an lvalue of typeA
      p a pointer of typeT*

      If the expressionstd::allocator_traits<A>::construct(m, p) is well-formed,T isDefaultInsertable intoX.

      [edit]Notes

      By default, this willvalue-initialize the object, as by::new((void*)p) T()(until C++20)std::construct_at(p)(since C++20).

      If value-initialization is undesirable, for example, if the object is of non-class type and zeroing out is not needed, it can be avoided by providing acustomAllocator::construct.

      Although it is required that customizedconstruct is used when constructing elements ofstd::basic_string until C++23, all implementations only used the default mechanism. The requirement is corrected byP1072R10 to match existing practice.

      [edit]Defect reports

      The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

      DRApplied toBehavior as publishedCorrect behavior
      N3346C++11the requirementsCopyInsertable andMoveInsertable
      are present, butDefaultInsertable was missing
      added the requirement

      [edit]See also

      DefaultConstructible
      CopyInsertable
      MoveInsertable
      EmplaceConstructible
      Erasable
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/named_req/DefaultInsertable&oldid=177549"

      [8]ページ先頭

      ©2009-2025 Movatter.jp