STL イテレータを再利用しようとしましたが、これに関する情報が見つかりません。このコードに問題があります:
std::vector< boost::shared_ptr<Connection> >::iterator poolbegin = pool.begin();
std::vector< boost::shared_ptr<Connection> >::iterator poolend = pool.end();
if( order ) {
poolbegin = pool.rbegin(); // Here compilation fails
poolend = pool.rend();
}
for( std::vector< boost::shared_ptr<Connection> >::iterator it = poolbegin; it<poolend; it++) {
しかし、エラーが発生します:
エラー: 'poolbegin = std::vector<_Tp, _Alloc>::rbegin() with _Tp = boost::shared_ptr, _Alloc = std::allocator >' の 'operator=' に一致しません</p>
イテレータを新しい値にリセットする方法はありますか? shared_ptr::reset のように?