我boost::any在C++项目中使用(以及其他Boost功能).
以下用g ++编译我的Mac(MacBook Pro Retina运行最新版本的Mavericks)就好了:
#include <boost/any.hpp>
Run Code Online (Sandbox Code Playgroud)
但是当我使用相同的编译设置/标志使用带有g ++的Ubuntu Linux时,我收到以下错误:
In file included from /home/alexandergunnarson/Documents/Source Code/byu/library/collections.cpp:11:0,
from /home/alexandergunnarson/Documents/Source Code/byu/library/collections.h:4,
from /home/alexandergunnarson/Documents/Source Code/byu/library/main.cpp:16:
/usr/include/boost/any.hpp: In instantiation of ‘boost::any::holder<ValueType>::holder(const ValueType&) [with ValueType = char [5]]’:
/usr/include/boost/any.hpp:52:49: required from ‘boost::any::any(const ValueType&) [with ValueType = char [5]]’
/home/alexandergunnarson/Documents/Source Code/byu/library/main.cpp:149:22: required from here
/usr/include/boost/any.hpp:169:27: error: array used as initializer
: held(value)
^
Run Code Online (Sandbox Code Playgroud)
collections.cpp:11:0是指#include <boost/any.hpp>声明.
我正在使用Sublime Text 3中的g ++ 4.9和Ubuntu 14.04.
这是一个提升问题还是什么?
谢谢你的帮助!
由于TC使用他的"心灵力量"来预测,我试图将字符串文字投射到boost::any.现在代码在经过并在string构造函数中放入一些字符串文字并编辑了一些相关函数之后就可以工作了.