Visual Studio2010sp1を使用しています。Windows7でC++とブースト1.47を使用
私は次のコードを持っています:
typedef boost::variant<unsigned int,int,long,double,bool,string,istringstream,int32_t,
uint32_t,int64_t,uint32_t,sql::SQLString> SQLVariant;
また、istringstreamをistreamに置き換えてみました。次のエラーが発生します:
Error 13 error C2249: 'std::basic_ios<_Elem,_Traits>::operator =' :
no accessible path to private member declared in virtual base 'std::basic_ios<_Elem,_Traits>'
c:\program files (x86)\microsoft visual studio 10.0\vc\include\istream 860
istringstreamiを宣言した場合; エラーは発生しません。istream i2を宣言すると、同様のエラーが発生します。
私は何が間違っているのですか?
istreamまたは派生クラスが必要な理由は、作業中のSQLライブラリ用です。具体的には、mysqlの実装では、setBlobを呼び出すためにistreamまたはistringstreamが必要です...
文字列を渡し、文字列ストリームを文字列で初期化することで、一時的に回避策を見つけました。ただし、私のバリアントタイプがistreamstreamを使用できるか、さらに良い場合はistreamを使用できると便利です。
ありがとう、フランク