名前空間
変種
操作

std::tuple_element<std::complex>

From cppreference.com
< cpp‎ | numeric‎ | complex
 
 
 
 
ヘッダ <complex> で定義
template< std::size_t I, class T >
struct tuple_element<I, std::complex<T>>;
(C++26以降)

std::tuple_elementstd::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) 指定された名前を初期化子のサブオブジェクトまたはタプル要素に束縛します[編集]
タプルライクな型の要素型を取得する
(クラステンプレート) [編集]
std::complex のサイズを取得します。
(クラステンプレートの特殊化) [編集]
std::complex から実部または虚部への参照を取得します
(関数テンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)