2016-10-13 14 views
1
boost/std :: chrono::time_point my_time_point(/* invalid value */); 

無効/無意味/センチネル値を保存する必要があります。どうすればそれをすることができますか?std :: chrono :: time_point無効な値

+4

はブースト::オプションまたはSTDに見て: :オプション:http://www.boost.org/doc/libs/1_61_0/libs/optional/doc/html/index.html –

+0

本当に助けになるでしょうか?無効な値を格納するために 'my_time_point'が必要です – user3600124

+2

'オプション'のポイントは、" null "/"無効 "状態を表すあなたの選択したドメインに"余分な値 "を提供しています –

答えて

1

(あなたが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 { /* ... */ } 
} 

(You can run it on wandbox.)

+0

Upvoted、しかしnitpick:OPは 'boost :: chrono :: time_point'ではなく' std :: chrono :: time_point'について尋ねました。 :-) –

+0

@HowardHinnant:固定! –

関連する問題