boost::ptr_vector
あれー?
ptr_vector<>::end()はptr_vector<>::const_iteratorで受けられないのか?
#include <boost/ptr_container/ptr_vector.hpp> struct A{}; void f() { boost::ptr_vector<A> x; boost::ptr_vector<A>::const_iterator end = x.end(); // C2440 //どっちかならコンパイルできた //boost::ptr_vector<A>::const_iterator end = x.cend(); //boost::ptr_vector<A>::interator end = x.end(); }
なぜかコンパイルできたりできなかったりする.
この部分だけ抜き出したらちゃんとコンパイル通るので最小再現コードがうまく作れない.
追記(2009.01.02 06:08)
オリジナルコードではf()はメンバ関数.
#include <boost/ptr_container/ptr_vector.hpp> struct A{}; struct B { boost::ptr_vector<A> x; void f() { boost::ptr_vector<A>::const_iterator end = x.end(); // C2440 //どっちかならコンパイルできた //boost::ptr_vector<A>::const_iterator end = x.cend(); //boost::ptr_vector<A>::interator end = x.end(); }; };