最終更新日時:
が更新

履歴 編集

function
<scoped_allocator>

std::scoped_allocator_adaptor::select_on_container_copy_construction(C++11)

scoped_allocator_adaptor select_on_container_copy_construction() const;

概要

コンテナのコピー構築に必要なアロケータを取得する。

戻り値

scoped_allocator_adaptorの各アロケータAについて、allocator_traits<A>::select_on_container_copy_construction()が返すアロケータオブジェクトからなるscoped_allocator_adaptorオブジェクトを返す。

#include <iostream>
#include <vector>
#include <string>

#include <scoped_allocator>

template <class T>
using alloc_t = std::allocator<T>;

// コンテナの要素(Inner)
using string = std::basic_string<
  char,
  std::char_traits<char>,
  alloc_t<char>
>;

// コンテナ(Outer)
template <class T>
using vector = std::vector<
  T,
  std::scoped_allocator_adaptor<alloc_t<T>, alloc_t<typename T::value_type>>
>;

int main()
{
  vector<string>::allocator_type alloc {
    alloc_t<string>(), // vector自体のアロケータオブジェクト
    alloc_t<char>()    // vectorの全ての要素に使用するアロケータオブジェクト
  };

  vector<string>::allocator_type for_copy_alloc = alloc.select_on_container_copy_construction();
}

出力

バージョン

言語

  • C++11

処理系