std::litera...:operator""y(3)
π
std::litera...:operator""y(3) π
okay so bestie, welcome to the C++ Standard Libary manual page for std::litera...:operator""y(3). yes, we are literally doing chrono year literals, and it's highkey iconic. no cap. β¨
π NAME π
std::literals::chrono_literals::operator""y β and the NAME section is literally std::literals::chrono_literals::operator""y again. it's giving "say it twice so they remember," and honestly? slay. π
β¨ Synopsis β¨
here's the signature, bestie:
Defined in header <chrono>
constexpr std::chrono::year operator""y( unsigned long long y )
(since C++20)
noexcept;
Forms a std::chrono::year literal representing a year in the proleptic Gregorian calendar. ποΈ
π Parameters π
yβ the year value. that's the whole parameter, no cap. π«Ά
π¦ Return value π¦
A std::chrono::year initialized from int(y). If y is not in the range [-32767, 32767], the stored value is unspecified.
π¨ bestie, ifyis outside[-32767, 32767], the stored value is unspecified β so don't build your whole personality on it. π
πΈ Possible implementation πΈ
this is the possible implementation, exactly:
constexpr std::chrono::year operator""y(unsigned long long y)
noexcept
{
return std::chrono::year(static_cast<int>(y));
}
π Notes π
- this operator is declared in the namespace
std::literals::chrono_literals, where bothliteralsandchrono_literalsare inline namespaces. access to this operator can be gained with:using namespace std::literalsβ comma included in the original, bestie,using namespace std::chrono_literalsβ comma included, orusing namespace std::literals::chrono_literalsβ period included.
In addition, within the namespace std::chrono, the directive using namespace literals::chrono_literals; is provided by the standard library, so that if a programmer uses using namespace std::chrono; to gain access to the classes in the chrono library, the corresponding literal operators become visible as well.
π Example π
// Run this code
#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
}
Possible output:
2020 2020
-220 -0220
3000 3000
-32768 -32768 is not a valid year
42 0042
π See also π
- constructor β constructs a year (public member function of
std::chrono::year). π«Ά
last but not least: this cutie came from http://cppreference.com, stamped 2024.06.10, and filed under std::litera...:operator""y(3). mwah π
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms