std::chrono::duration_values::zero
От: B0FEE664  
Дата: 24.01.19 10:22
Оценка: +1
Что-то я не понимаю как этим пользоваться.

С удивлением обнаружил, что есть два* нуля:
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() )

если пишешь для врагов.

А как правильно?
И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.