std::litera...:operator""h(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸ’– std::litera...:operator""h(3) πŸ’–

okay so this is the C++ Standard Libary manual page for std::litera...:operator""h(3), and bestie, it’s giving hour-literal excellence. ✨


✨ NAME ✨

  • std::literals::chrono_literals::operator""h β€” std::literals::chrono_literals::operator""h

πŸ“œ Synopsis πŸ“œ

Defined in header <chrono>
constexpr std::chrono::hours
(1) (since C++14)
        operator""h( unsigned long long hrs );
constexpr std::chrono::duration</*unspecified*/,
std::ratio<3600,1>>
(2) (since C++14)
        operator""h( long double hrs );

Forms a std::chrono::duration literal representing hours. πŸ•°οΈ

  1. Integer literal, returns exactly std::chrono::hours(hrs).
  2. Floating-point literal, returns a floating-point duration equivalent to std::chrono::hours.

πŸŽ€ Parameters πŸŽ€

  • hrs β€” the number of hours

πŸ’« Return value πŸ’«

The std::chrono::duration literal.

πŸ› οΈ Possible implementation πŸ› οΈ

constexpr std::chrono::hours operator""h(unsigned long long h)
{
    return std::chrono::hours(h);
}

constexpr std::chrono::duration<long double, ratio<3600,1>>
operator""h(long double h)
{
    return std::chrono::duration<long double, std::ratio<3600,1>>(h);
}

🌸 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, or
  • using 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.

πŸ¦‹ Example πŸ¦‹

// Run this code

#include <chrono>
#include <iostream>

int main()
{
    using namespace std::chrono_literals;
    auto day = 24h;
    auto halfhour = 0.5h;
    std::cout << "one day is " << day.count() << " hours (" << day <<
")\n"
              << "half an hour is " << halfhour.count() << " hours ("
              << halfhour << ")\n";
}

🌈 Output 🌈

one day is 24 hours (24h)
half an hour is 0.5 hours (0.5h)

πŸ‘‘ See also πŸ‘‘

  • constructor β€” constructs new duration (public member function of std::chrono::duration<Rep,Period>)

πŸ’Œ source/version: http://cppreference.com; dated 2024.06.10; page: std::litera...:operator""h(3). bye bestie, go make every hour count 🫢

πŸ“¦ where this page comes from