Что-то я не понимаю как этим пользоваться.
С удивлением обнаружил, что есть два
* нуля:
std::chrono::duration_values<..>::zero()
и
std::chrono::duration<..>::zero()
но я не совсем понимаю как этим пользоваться.
У меня есть метод класса:
auto GetTimeout();
Я хочу узнать, не вернула ли эта функция ноль.
Простой вариант:
if ( 0 == GetTimeout().count() )
конечно работает, но хотелось бы "по науке", т.е. использовать функцию zero().
Я могу написать:
if ( GetTimeout().zero() == GetTimeout().count() )
но это два вызова функции GetTimeout() и мало кто сможет это прочесть не дивясь мудратости автора.
Можно, конечно, написать так:
if ( std::result_of<decltype(&ClassName::GetTimeout)(ClassName)>::type::zero() == GetListenTimeout() )
если пишешь для врагов.
А как правильно?