【发布时间】:2009-11-18 18:10:09
【问题描述】:
我是提升共享数组的新手。
现有代码声明了两个数组:
boost::shared_array<unsigned char> src;
boost::shared_array<unsigned char> dest;
我要做的就是交换每个数组指向的内容(src 变成 dest,dest 变成 src)。据我了解, shared_array.get() 方法返回一个指向其元素之一的指针(可以是任何类型)。
所以我添加的声明是:
boost::shared_array<unsigned char> temp;
我添加的代码是:
temp.get() = src.get();
src.get() = dest.get();
dest.get() = temp.get();
每一行都失败了;编译错误是 C2016: '=' : left operand must be l-value.
我是 C++ 新手,所以我用 Google 搜索了错误,发现该错误消息意味着左侧操作数不可赋值。但是左边都是指针,指针可以赋值给其他指针。
所以我不确定我做错了什么。有人可以帮帮我吗?
提前致谢。
jbu
【问题讨论】:
标签: c++ arrays boost pointers shared