Skip to content

Latest commit

 

History

History
80 lines (64 loc) · 2.12 KB

allocate.md

File metadata and controls

80 lines (64 loc) · 2.12 KB

allocate

  • memory[meta header]
  • std[meta namespace]
  • allocator_traits[meta class]
  • function[meta id-type]
  • cpp11[meta cpp]
static pointer
  allocate(Alloc& a, size_type n);     // (1) C++11
[[nodiscard]]
static constexpr pointer
  allocate(Alloc& a, size_type n);     // (1) C++20
static constexpr pointer
  allocate(Alloc& a, size_type n);     // (1) C++26

static pointer
  allocate(Alloc& a, size_type n,
           const_void_pointer hint);   // (2) C++11
[[nodiscard]]
static constexpr pointer
  allocate(Alloc& a, size_type n,
           const_void_pointer hint);   // (2) C++20
static constexpr pointer
  allocate(Alloc& a, size_type n,
           const_void_pointer hint);   // (2) C++26

概要

メモリを確保する。

戻り値

  • (1) : a.allocate(n)
  • (2) : a.allocate(n, hint)という式が有効であればそれを呼び出し、そうでなければa.allocate(n)を呼び出す。

#include <memory>

int main()
{
  std::allocator<int> alloc;
  using traits = std::allocator_traits<decltype(alloc)>;

  // 10要素のint領域を確保する
  std::size_t n = 10;
  int* p = traits::allocate(alloc, n);

  // 確保したメモリを解放する
  traits::deallocate(alloc, p, n);
}
  • allocate[color ff0000]
  • traits::deallocate[link deallocate.md]

出力

バージョン

言語

  • C++11

処理系

  • Clang: 3.0 [mark verified]
  • GCC: 4.7.3 [mark verified]
  • ICC: ??
  • Visual C++: 2012 [mark verified], 2013 [mark verified]

参照