使用boost::get失败的值

问题描述 投票:0回答:1

我所要做的就是理解这个异常的含义,一般来说,所以我不想给它附加任何代码。这里是完整的错误。libc++abi.dylib: terminating with uncaught exception of type boost::wrapexcept<boost::bad_get>: boost::bad_get: failed value get using boost::get

c++ boost c++14
1个回答
0
投票

正如异常所说。boost::get 失败。 最可能的原因是 boost::variant 你想 get 的值当前并不持有你要的类型。get. 例如,下面的内容将抛出你所看到的异常,因为 foo 目前拥有 int,不是 double:

int main (){
    boost::variant<int, double> foo;
    foo = 42;
    std::cout << boost::get<double>(foo);
}

现场演示

© www.soinside.com 2019 - 2024. All rights reserved.