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_size・tuple_elementの特殊化とあわせてタプルインターフェースを構成し、構造化束縛で分解できるようにする。
適格要件
I < 2であること
戻り値
例外
投げない。
例
#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
処理系
- Clang: ??
- GCC: ??
- Visual C++: ??