我有以下内容:
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!
}
}
它编译但它没有链接!它说BOOST_FOREACH需要implicit default copy constructor for X
。
如何使用BOOST_FOREACH
迭代指向X的指针...没有复制构造函数。
感谢。
答案 0 :(得分:0)
尝试使用BOOST_FOREACH()
,。i.e。
BOOST_FOREACH(boost::ptr_vector<X>::value_type &x, mx)
{
// do something with x!
}