私はいくつかのコードを読んでいて、理解できないものに出くわしました。Boost::optional 値が初期化されているかどうかをテストします。マクロを提供する gtest フレームワークを使用しますASSERT_TRUE()
。
#include "gtest\gtest.h"
void test() {
boost::optional<someClass> opt = someFunc();
ASSERT_TRUE(!!opt);
}
なぜ!!
beforeが必要なのopt
ですか? boost::optional
マクロに必要な bool に暗黙的に変換されていませんか? ASSERT_TRUE(opt)
opt が正しい値を保持しているかどうかを確認するために使用するだけで十分だと思いましたか?