首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >boost变量istringstream和流错误

boost变量istringstream和流错误
EN

Stack Overflow用户
提问于 2012-07-12 22:01:57
回答 1查看 329关注 0票数 1

我使用的是Visual Studio2010 sp1。在Windows7中使用c++和boost 1.47

我有以下代码:

代码语言:javascript
复制
typedef boost::variant<unsigned int,int,long,double,bool,string,istringstream,int32_t,
                                 uint32_t,int64_t,uint32_t,sql::SQLString> SQLVariant;

我还试着用istream替换istringstream。我确实得到了以下错误:

代码语言:javascript
复制
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,那就更好了

谢谢,弗兰克

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-12 22:20:27

引用自Boost.Variant:

对绑定类型的要求是as follows

  • CopyConstructible 20.1.3。
  • 析构函数维护了不抛出异常的安全保证。
  • 在变体模板实例化时完成。(有关接受不完整类型以启用递归变体类型的类型包装,请参见boost::recursive_wrapper。)

std::istringstream是不可复制构造的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11453538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档