Closed blacktea closed 8 months ago
Операторы добавили в C++20 https://wg21.link/P0355
#include <chrono>
#include <iostream>
using namespace std::chrono_literals;
int main()
{
std::cout << "1 second is:\n";
// integer scale conversion with no precision loss: no cast
std::cout << std::chrono::milliseconds(1s) << "\n"
<< std::chrono::microseconds(1s) << "\n"
<< std::chrono::nanoseconds(1s) << "\n";
// integer scale conversion with precision loss: requires a cast
std::cout << std::chrono::duration_cast<std::chrono::minutes>(1s).count()
<< " minutes\n";
}
Для чтения можно использовать std::from_stream
Предлагаю добавить операторы ввода/вывода(operator>>, operator<<) для std::chrono::duration. Это будет удобно считывать из потока значения периода. Так же избавляет от создания временной переменой.
Например, необходимо считать из стандартного ввода продолжительность чего либо измеряемое в секундах.
Как видно, приходится создавать доп. переменную
period
для создания duration.С выводом дела обстоят чуть проще, но все равно нужно вызывать count(). Вместо этого можно было писать:
Кажется, добавление операторов не ломает какой либо код.
Полезные ссылки: