我所要做的就是理解这个异常的含义,一般来说,所以我不想给它附加任何代码。这里是完整的错误。libc++abi.dylib: terminating with uncaught exception of type boost::wrapexcept<boost::bad_get>: boost::bad_get: failed value get using boost::get
正如异常所说。boost::get
失败。 最可能的原因是 boost::variant
你想 get
的值当前并不持有你要的类型。get
. 例如,下面的内容将抛出你所看到的异常,因为 foo
目前拥有 int
,不是 double
:
int main (){
boost::variant<int, double> foo;
foo = 42;
std::cout << boost::get<double>(foo);
}