首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

boost:any为什么不能存储普通字符串?解决方法

2012-06-05 
boost::any为什么不能存储普通字符串?下面这段代码编译有错误:(boost1.49+vc10)#includeboost/any.hppin

boost::any为什么不能存储普通字符串?
下面这段代码编译有错误:(boost1.49+vc10)
#include<boost/any.hpp>
int main(void){
  boost::any a;
  a=20;
  a="abc";
  return 0;
}

error C2536: “boost::any::holder<ValueType>::boost::any::holder<ValueType>::held”: 无法指定数组的显式初始值设定项

改成a=std::string("abc");就可以了
问题是: boost::any对于构造的值,类型还有限定条件么? 不是叫做"any"么?


[解决办法]
a=(const char*)"abc"; 就可以了
直接写不行是因为它的类型是 char [4], 而内建数组默认不支持拷贝的.
[解决办法]
any其实没啥太大用处
boost库很乱的,有的很强大,有的貌似强大,有的完全就是实验性质的。
不建议自己当小白鼠。
[解决办法]
额,boost此等神物实在难以捉摸。

热点排行