std::literals::chrono_literals::operator""y
From cppreference.com
| ヘッダー <chrono> で定義 |
||
| constexpr std::chrono::year operator""y( unsigned long long y ) noexcept; |
(C++20以降) | |
「std::chrono::year」リテラルを形成します。これは「遡及グレゴリオ暦」での年を表します。
目次 |
[編集] パラメータ
| y | - | 年の値 |
[編集] 戻り値
std::chrono::yearをint(y)から初期化します。もしyが範囲[-32767, 32767]にない場合、格納されている値は未規定です。
[編集] 実装例
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メンバ関数) |