最終更新日時:
が更新

履歴 編集

function template
<memory>

std::get(C++29)

namespace std {
  template <size_t I, class Ptr, unsigned int BitsRequested, class TagT>
  constexpr tuple_element_t<I, pointer_tag_pair<Ptr, BitsRequested, TagT>>
    get(pointer_tag_pair<Ptr, BitsRequested, TagT> p) noexcept; // (1) C++29
}

概要

pointer_tag_pairオブジェクトから、ポインタ値(I == 0)またはタグ値(I == 1)を取得する。

tuple_sizetuple_elementの特殊化とあわせてタプルインターフェースを構成し、構造化束縛で分解できるようにする。

適格要件

  • I < 2であること

戻り値

  • Iが0と等しい場合 : p.pointer()
  • そうでない場合 : p.tag()

例外

投げない。

#include <memory>
#include <iostream>

int main()
{
  int x = 42;
  std::pointer_tag_pair<int*, 2> p{&x, 3u};

  // 構造化束縛でポインタとタグへ分解する
  auto [ptr, tag] = p;
  std::cout << *ptr << ':' << tag << std::endl;
}

出力

42:3

バージョン

言語

  • C++29

処理系

参照