名前空間
変種
操作

std::literals::complex_literals::operator""i, operator""if, operator""il

提供: cppreference.com
< cpp‎ | numeric‎ | complex
 
 
数値演算ライブラリ
一般的な数学関数
数学の特殊関数 (C++17)
数学定数 (C++20)
浮動小数点環境 (C++11)
複素数
数値配列
擬似乱数生成
コンパイル時有理数算術 (C++11)
数値演算アルゴリズム
(C++17)
(C++17)
補間
(C++20)
(C++20)
汎用の数値演算
(C++11)
(C++17)
ビット操作
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
 
 
ヘッダ <complex> で定義
constexpr complex<double> operator""i(long double arg);
constexpr complex<double> operator""i(unsigned long long arg);
(1) (C++14以上)
constexpr complex<float> operator""if(long double arg);
constexpr complex<float> operator""if(unsigned long long arg);
(2) (C++14以上)
constexpr complex<long double> operator""il(long double arg);
constexpr complex<long double> operator""il(unsigned long long arg);
(3) (C++14以上)

虚数を表す std::complex リテラルを形成します。

1) ゼロの実部と arg の虚部を持つ std::complex<double> リテラルを形成します。
2) ゼロの実部と arg の虚部を持つ std::complex<float> リテラルを形成します。
3) ゼロの実部と arg の虚部を持つ std::complex<long double> リテラルを形成します。

目次

[編集] 引数

arg - 虚数の値

[編集] 戻り値

ゼロの実部と arg の虚部を持つ std::complex リテラル。

[編集] ノート

これらの演算子は名前空間 std::literals::complex_literals で宣言されています。 literalscomplex_literals は両方ともインライン名前空間です。 これらの演算子へのアクセスは using namespace std::literals, using namespace std::complex_literals, using namespace std::literals::complex_literals で得られます。

if は C++ のキーワードですが、ホワイトスペースで区切られた別個のトークンでないため、 operator ""if 形式のリテラル演算子および 1if1.0if などのリテラル式における ud-suffix になります。

[編集] 実装例

1つめのバージョン
constexpr std::complex<double> operator""i(unsigned long long d)
{
    return std::complex<double>{0.0, static_cast<double>(d)};
}
constexpr std::complex<double> operator""i(long double d)
{
    return std::complex<double>{0.0, static_cast<double>(d)};
}
2つめのバージョン
constexpr std::complex<float> operator""if(unsigned long long d)
{
    return std::complex<float>{0.0f, static_cast<float>(d)};
}
constexpr std::complex<float> operator""if(long double d)
{
    return std::complex<float>{0.0f, static_cast<float>(d)};
}
3つめのバージョン
constexpr std::complex<long double> operator""il(unsigned long long d)
{
    return std::complex<long double>{0.0L, static_cast<long double>(d)};
}
constexpr std::complex<long double> operator""il(long double d)
{
    return std::complex<long double>{0.0L, d};
}

[編集]

#include <iostream>
#include <complex>
 
int main()
{
    using namespace std::complex_literals;
    std::complex<double> c = 1.0 + 1i;
    std::cout << "abs" << c << " = " << abs(c) << '\n';
}

出力:

abs(1,1) = 1.41421

[編集] 関連項目

複素数を構築します
(パブリックメンバ関数) [edit]
内容を代入します
(パブリックメンバ関数) [edit]