我有以下内容:
class X : public boost::noncopyable
{...};
class Y
{
public:
const boost::ptr_vector<X>& getXs() const;
private:
boost::ptr_vector<X> m_xs;
}
int main()
{
Y y1;
//...
const boost::ptr_vector<X>& mx = y1.getXx();
BOOST_FOREACH(boost::ptr_vector<X>::value_type x, mx)
{
// do something with x!
}
}
它编译但它不链接!它说这implicit default copy constructor for X
是 BOOST_FOREACH 需要的。
我如何仅迭代指向 X 的指针...没有复制构造函数,使用BOOST_FOREACH
.
谢谢。