boost/std :: chrono::time_point my_time_point(/* invalid value */);
Мне нужно сохранить недопустимое/бессмысленное/контрольное значение. Как я могу это сделать?std :: chrono :: time_point недопустимое значение
boost/std :: chrono::time_point my_time_point(/* invalid value */);
Мне нужно сохранить недопустимое/бессмысленное/контрольное значение. Как я могу это сделать?std :: chrono :: time_point недопустимое значение
Вы можете использовать boost::optional
(или std::optional
, если у вас есть поддержка C++ 17) представлять недопустимое состояние chrono::time_point
:
#include <chrono>
#include <boost/optional.hpp>
int main()
{
using my_clock = std::chrono::system_clock;
using my_time_point = std::chrono::time_point<my_clock>;
boost::optional<my_time_point> maybe_time_point;
// Set to invalid value:
maybe_time_point = boost::none;
// If 'maybe_time_point' is valid...
if(maybe_time_point)
{
auto inner_value = *maybe_time_point;
/* ... */
}
else { /* ... */ }
}
Упрощенный, но nitpick: OP спросил о 'std :: chrono :: time_point', а не' boost :: chrono :: time_point'. :-) –
@HowardHinnant: исправлено! –
Посмотрите в повышение :: опциональный или станд: : необязательно: http://www.boost.org/doc/libs/1_61_0/libs/optional/doc/html/index.html –
Вы уверены, что это поможет? Мне нужно 'my_time_point' для хранения недопустимого значения – user3600124
Точка« необязательный »предоставляет« дополнительное значение »в выбранном вами домене, который представляет состояние« null »/« invalid ». –