我正在阅读一些代码,但遇到了一些我不理解的东西。它是关于测试 Boost::optional 值是否已初始化。它使用提供ASSERT_TRUE()
宏的 gtest 框架。
#include "gtest\gtest.h"
void test() {
boost::optional<someClass> opt = someFunc();
ASSERT_TRUE(!!opt);
}
为什么我需要!!
before opt
?a 是否boost::optional
未隐式转换为宏所需的布尔值?ASSERT_TRUE(opt)
我认为使用它来检查 opt 是否具有正确的值就足够了?