Я знакомлюсь с boost :: вариантом. Я думаю, что этот пример должен работать.
#include <boost/fusion/sequence.hpp>
#include <boost/fusion/include/sequence.hpp>
#include <boost/variant/variant.hpp>
#include <string>
#include <vector>
#include <iostream>
#include <boost/variant/get.hpp>
boost::variant< bool,long,double,std::string,
std::vector<boost::variant<bool> > > v4;
void main()
{
std::vector<boost::variant<bool> > av (1);
v4= av;
try
{
bool b=
boost::get<bool> (v4[0]); // <--- this is line 20
std::cout << b;
}
catch (boost::bad_get v)
{
std::cout << "bad get" <<std::endl;
}
}
Я получаю ошибку компиляции:
d: \ m \ upp \ boosttest \ main.cpp (20): ошибка C2676: двоичный файл [[:: boost :: variable 'do
не определяет этот оператор или преобразование в тип, приемлемый для предопределенного оператора
с
[
T0_ = BOOL,
Т1 = долго,
Т2 = двойной,
T3 = станд :: строка,
T4 = станд :: вектор>
]