gpt4 book ai didi

c++ - boost 变体 istringstream 和流错误

转载 作者:行者123 更新时间:2023-11-30 04:26:40 25 4
gpt4 key购买 nike

我使用的是 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;

我还尝试用 istream 替换 istringstream。我确实收到以下错误:

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 ,那就太好了

谢谢,弗兰克

最佳答案

引用自 Boost.Variant:

有界类型的要求是 as follows :

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

std::istringstream 不可复制构造。

关于c++ - boost 变体 istringstream 和流错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11453538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com