某一函数需要 类型为 shared_ptr<const
vector<shared_ptr<OBXX>>>的参数,我的程序需要组装这一参数,所以声明时是shared_ptr<vector<shared_ptr<OBXX>>>,没有其中的const,等我得到值之后要传入,总是报告参数类型不正确,从非const到const不应该是很合理的事吗(又不是从const到非const)?为什么还要求转换?这不是c++语言应该处理的事情吗?如何转换呢?
2 回答
qq_笑_17
TA贡献1818条经验 获得超7个赞
楼主用的是哪个编译器,我用VC和g++试了没有问题啊,下面的代码可以正常编译
g++的编译命令:g++ -std=c++0x test.cpp
不知道楼主是不是下面这个意思
#include <vector> #include <memory> using namespace std; class A { public: int ccc; int GetCCC() { return this->ccc; } }; void fun(shared_ptr<const vector<shared_ptr<A>>>) { } int main() { shared_ptr<vector<shared_ptr<A>>> a; fun(a); return 0; }
- 2 回答
- 0 关注
- 745 浏览
添加回答
举报
0/150
提交
取消