std::tuple_element<std::complex>
From cppreference.com
| ヘッダ <complex> で定義 |
||
| template< std::size_t I, class T > struct tuple_element<I, std::complex<T>>; |
(C++26以降) | |
std::tuple_element の std::complex に対する部分特殊化は、タプルライクな構文を使用して、complex の基になる実数型と虚数型にコンパイル時にアクセスを提供します。これらは構造化束縛のサポートのために提供されます。 I >= 2 の場合、プログラムは不正形式となります。
目次 |
[編集] メンバ型
| メンバ型 | 定義 |
type
|
T
|
[編集] 注釈
| 機能テストマクロ | 値 | 規格 | 機能 |
|---|---|---|---|
__cpp_lib_tuple_like |
202311L |
(C++26) | std::complex にタプルプロトコルを追加 |
[編集] 例
このコードを実行
#include <complex> #include <type_traits> static_assert([z = std::complex<float>()] { using T = decltype(z); return #if __cpp_lib_tuple_like >= 202311L std::is_same_v<std::tuple_element_t<0, T>, float> && std::is_same_v<std::tuple_element_t<1, T>, float> && #endif std::is_same_v<T::value_type, float>; }()); int main() {}
[編集] 関連項目
| 構造化束縛 (C++17) | 指定された名前を初期化子のサブオブジェクトまたはタプル要素に束縛します |
| (C++11) |
タプルライクな型の要素型を取得する (クラステンプレート) |
| std::complex のサイズを取得します。 (クラステンプレートの特殊化) | |
| (C++26) |
std::complex から実部または虚部への参照を取得します (関数テンプレート) |