std::litera...:operator""s(3)
π NAME π
Hey bestie, this is the manual page for std::litera...:operator""s(3) from the C++ Standard Libary. The NAME section is giving twin-flame energy, no cap: std::literals::chrono_literals::operator""s - std::literals::chrono_literals::operator""s. Iconic. π
β¨ Synopsis β¨
Defined in header <chrono>.
constexpr std::chrono::seconds (1) (since C++14)
operator""s( unsigned long long secs );
constexpr std::chrono::duration</*unspecified*/> (2) (since C++14)
operator""s( long double secs );
This forms a std::chrono::duration literal representing seconds. Periodt. π°οΈ
- Integer literal: returns exactly
std::chrono::seconds(secs). - Floating-point literal: returns a floating-point duration equivalent to
std::chrono::seconds.
π Parameters π
secsβ the number of seconds.
That's the parameter, and she's booked and busy. π
π«Ά Return value π«Ά
The std::chrono::duration literal. That's it, that's the return. π«Ά
π₯ Possible implementation π₯
Here's the possible implementation, looking cute:
constexpr std::chrono::seconds operator""s(unsigned long long s)
{
return std::chrono::seconds(s);
}
constexpr std::chrono::duration<long double> operator""s(long double s)
{
return std::chrono::duration<long double>(s);
}
π Notes π
This operator is declared in the namespace std::literals::chrono_literals, where both literals and chrono_literals are inline namespaces. Access to this operator can be gained with:
using namespace std::literals,using namespace std::chrono_literals, orusing namespace std::literals::chrono_literals.
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.
std::string also defines operator""s, to represent literal objects of type std::string, but it is a string literal: 10s is ten seconds, but "10"s is a two-character string. Same letter, different lore, bestie. π
π Example π
// Run this code
#include <chrono>
#include <iostream>
int main()
{
using namespace std::chrono_literals;
std::chrono::seconds halfmin = 30s;
std::cout << "Half a minute is " << halfmin.count() << " seconds"
" (" << halfmin << ").\n"
"A minute and a second is " << (1min + 1s).count() << " seconds.\n";
std::chrono::duration moment = 0.1s;
std::cout << "A moment is " << moment.count() << " seconds"
" (" << moment << ").\n"
"And thrice as much is " << (moment + 0.2s).count() << " seconds.\n";
}
Output:
Half a minute is 30 seconds (30s).
A minute and a second is 61 seconds.
A moment is 0.1 seconds (0.1s).
And thrice as much is 0.3 seconds.
π See also π
constructorβ constructs new duration (public member function ofstd::chrono::duration<Rep,Period>)
Okay bye, bestie! This was std::litera...:operator""s(3) from the C++ Standard Libary manual. Footer sign-off vibes: source http://cppreference.com, version/date 2024.06.10, and the page name std::litera...:operator""s(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