回答編集履歴

2

m

2017/12/04 10:00

投稿

yumetodo
yumetodo

スコア5852

answer CHANGED
@@ -1,3 +1,4 @@
1
1
  そもそも未初期化の変数への読み取りはUndefined Behavior。普通コンパイラが警告してくれる。
2
2
 
3
- そういう話ではない場合は多分`std::optional`(C++17)ないしその類似品(`boost::optional`/`sprout::optional`)が要求を満たすと思う。
3
+ そういう話ではない場合は多分`std::optional`(C++17)ないしその類似品(`boost::optional`/`sprout::optional`)が要求を満たすと思う。
4
+ optionalというのは値を持つor持たないという情報と値を持っている場合はその値の2つを持つクラスです。よって値を持たないという状態で初期化しておけば要求を満たすと思われます。

1

m

2017/12/04 10:00

投稿

yumetodo
yumetodo

スコア5852

answer CHANGED
@@ -1,3 +1,3 @@
1
1
  そもそも未初期化の変数への読み取りはUndefined Behavior。普通コンパイラが警告してくれる。
2
2
 
3
- そういう話ではない場合は多分`std::optional`が要求を満たすと思う。
3
+ そういう話ではない場合は多分`std::optional`(C++17)ないしその類似品(`boost::optional`/`sprout::optional`)が要求を満たすと思う。