Как говорит исключение, boost::get
не удалось. Наиболее вероятной причиной является то, что boost::variant
, из которого вы пытаетесь get
значение, в настоящее время не содержит тип, который вы пытаетесь get
. Например, следующее вызовет исключение, которое вы видите, потому что foo
в настоящее время содержит int
, а не double
:
int main (){
boost::variant<int, double> foo;
foo = 42;
std::cout << boost::get<double>(foo);
}
Live Demo