我正在使用 Visual Studio 2010 sp1。在 Windows 7 中使用 c++ 和 boost 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
如果我声明 istringstream i; 我没有得到错误。如果我声明 istream i2,我确实会收到类似的错误;
我究竟做错了什么?
我需要 istream 或派生类的原因是我正在研究的 sql 库。具体来说,对于 mysql 实现,我需要一个 istream 或 istringstream 来调用 setBlob ...
我找到了一个临时解决方法,允许传递一个字符串并用该字符串初始化字符串流。但是,如果我的变体类型可以采用 istreamstream 或更好的 istream,那就太好了
谢谢,弗兰克