gpt4 book ai didi

c++ - 将可选的隐式转换为 bool 值?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:22:32 26 4
gpt4 key购买 nike

我正在阅读一些代码,但遇到了一些我不明白的事情。它是关于测试 Boost::optional 值是否被初始化的。它使用提供 ASSERT_TRUE() 宏的 gtest 框架。

#include "gtest\gtest.h"

void test() {
boost::optional<someClass> opt = someFunc();
ASSERT_TRUE(!!opt);
}

为什么在 opt 之前需要 !!boost::optional 是否未隐式转换为宏所需的 bool 值?我认为使用 ASSERT_TRUE(opt) 来检查 opt 是否持有正确的值就足够了吗?

最佳答案

Is a boost::optional not impicit converted to a bool

不,不是。它到 bool 的转换运算符被标记为 explicit,但是您的测试框架需要一些可以隐式转换的东西。您也应该看到普通 bool test = opt; 的问题:它应该无法编译。

关于c++ - 将可选的隐式转换为 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34912520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com