名前空間
変種
操作

std::literals::chrono_literals::operator""y

From cppreference.com
< cpp‎ | chrono
 
 
 
 
ヘッダー <chrono> で定義
constexpr std::chrono::year operator""y( unsigned long long y ) noexcept;
(C++20以降)

std::chrono::year」リテラルを形成します。これは「遡及グレゴリオ暦」での年を表します。

目次

[編集] パラメータ

y - 年の値

[編集] 戻り値

std::chrono::yearint(y)から初期化します。もしyが範囲[-3276732767]にない場合、格納されている値は未規定です。

[編集] 実装例

constexpr std::chrono::year operator""y(unsigned long long y) noexcept
{
    return std::chrono::year(static_cast<int>(y));
}

[編集] 注記

この演算子は「std::literals::chrono_literals」名前空間に宣言されています。ここで「literals」と「chrono_literals」は両方ともインライン名前空間です。この演算子へのアクセスは以下のようにして得られます。

  • using namespace std::literals,
  • using namespace std::chrono_literals、または
  • using namespace std::literals::chrono_literals.

さらに、「std::chrono」名前空間内では、「using namespace literals::chrono_literals;」というディレクティブが標準ライブラリによって提供されているため、プログラマが「using namespace std::chrono;」を使用してchronoライブラリのクラスにアクセスできるようにすると、対応するリテラル演算子も同様に表示されるようになります。

[編集]

#include <chrono>
#include <iostream>
 
int main()
{
    using namespace std::literals;
 
    std::cout << int(2020y)  << '\t' << 2020y  << '\n'
              << int(-220y)  << '\t' << -220y  << '\n'
              << int(3000y)  << '\t' << 3000y  << '\n'
              << int(32768y) << '\t' << 32768y << '\n'  // unspecified
              << int(65578y) << '\t' << 65578y << '\n'; // unspecified
}

実行結果の例

2020	2020
-220	-0220
3000	3000
-32768	-32768 is not a valid year
42	0042

[編集] 関連項目

yearを構築します
(std::chrono::yearのpublicメンバ関数) [編集]
English 日本語 中文(简体) 中文(繁體)