名前空間
変種
操作

std::tuple_size<std::complex>

From cppreference.com
< cpp‎ | numeric‎ | complex
 
 
 
 
ヘッダ <complex> で定義
template< class T >

struct tuple_size<std::complex<T>>

    : std::integral_constant<std::size_t, 2> {};
(C++26以降)

std::tuple_sizestd::complexに対する部分特殊化は、complexのコンポーネント数をコンパイル時に取得するための方法を提供します。その数は常に2であり、タプルライクな構文を使用します。これは構造化束縛のサポートのために提供されています。

目次

std::integral_constant から継承

メンバ定数

value
[static]
定数値 2
(公開静的メンバ定数)

メンバ関数

operator std::size_t
オブジェクトを std::size_t に変換し、value を返します。
(public member function)
operator()
(C++14)
value を返します。
(public member function)

メンバ型

定義
value_type std::size_t
type std::integral_constant<std::size_t, value>

[編集] 注釈

機能テストマクロ 規格 機能
__cpp_lib_tuple_like 202311L (C++26) std::complex にタプルプロトコルを追加

[編集]

#include <complex>
 
static_assert(std::tuple_size_v<std::complex<float>> == 2);
 
static_assert([]
{
    using namespace std::literals;
    auto [re, im] = -1.5 + 2.5i;
    return re == -1.5 && im == 2.5;
}());
 
static_assert([]
{
    using namespace std::literals;
    auto z = std::complex<double>{};
    auto& [re, im] = z;
    re = 1.0;
    im = 2.0;
    return z == 1.0 + 2.0i;
}());
 
int main() {}

[編集] 関連項目

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