boost::variantを使用してC++で簡単なプログラムを作成しました。プログラムのコードを以下に示します。
#include <string>
#include <iostream>
#include <boost/variant.hpp>
int main (int argc, char** argv)
{
boost::variant<int, std::wstring> v;
v = 3;
std::cout << v << std::endl;
return 0;
}
しかし、これをコマンドでコンパイルしようとすると
g++ main.cpp -o main -lboost_system
私は得る
/usr/include/boost/variant/detail/variant_io.hpp:64: error: no match for ‘operator<<’ in ‘((const boost::detail::variant::printer<std::basic_ostream<char, std::char_traits<char> > >*)this)->boost::detail::variant::printer<std::basic_ostream<char, std::char_traits<char> > >::out_ << operand’
候補関数の束が続きます。
私が欠けているものは何ですか?面白いのは、すべてstd::string
の代わりに使用するとstd::wstring
うまくいくことです。
前もって感謝します。