Я успешно выполнил следующий фрагмент кода, используя boost::variant<string, float>
. Однако, когда я пытался использовать boost::any
вместо этого, я сталкиваюсь рассогласования ошибку операнда в cout<<
инструкции, кусок кода:Разница между boost :: any и boost :: variant, когда мы используем cout <<
for(vector<vector<vector<boost::any>>>::const_iterator i = masterList.begin(); i != masterList.end(); ++i)
{
for(vector<vector<boost::any>>::const_iterator j = i->begin(); j != i->end(); ++j)
{
for(vector<boost::any>::const_iterator k = j->begin(); k != j->end(); ++k)
{
cout<<*k<<' ';
}
}
}
[Boost.TypeErasure] (http://www.boost.org/doc/libs/1_54_0_beta1/doc/html/boost_typeerasure.html) был добавлен в последнюю бета-версию и должен быть официальной частью Boost менее чем за месяц (при условии, что никаких серьезных проблем не будет поднято). – Mankarse
@Mankarse: Обновлены ссылки, так как Boost 1.54 теперь выпущен с помощью библиотеки TypeErasure. – dalle