gtest的testcase中对空的std::optional取值报错
昨天写完代码跑case的时候,发现一个很奇怪的问题
case的log里面报了这样一个错误:
C++ exception with description “bad optional access” thrown in the test body.
这 个 错 误 应 该 是 代 码 里 面 对 一 个 空 的 o p t i o n a l 类 型 的 变 量 取 值 了 \color{red}{这个错误应该是代码里面对一个空的optional类型的变量取值了} 这个错误应该是代码里面对一个空的optional类型的变量取值了,但是我从gdb看backtrace竟然没找到调用栈,bt出来显示的全是gtest.so的东西,导致我以为是测试的framework还不支持这个case的异常场景
后来别人说这是std::optional的异常抛出,确实就是这样,设计的就很奇怪
然后打断点慢慢单步调试解决