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無効な値
(あなたがC++ 17のサポートを持っている場合、またはstd::optional
)あなたはchrono::time_point
の無効な状態を表現するためにをboost::optional
を使用することができます。
#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 { /* ... */ }
}
Upvoted、しかしnitpick:OPは 'boost :: chrono :: time_point'ではなく' std :: chrono :: time_point'について尋ねました。 :-) –
@HowardHinnant:固定! –
はブースト::オプションまたはSTDに見て: :オプション:http://www.boost.org/doc/libs/1_61_0/libs/optional/doc/html/index.html –
本当に助けになるでしょうか?無効な値を格納するために 'my_time_point'が必要です – user3600124
'オプション'のポイントは、" null "/"無効 "状態を表すあなたの選択したドメインに"余分な値 "を提供しています –