vector::erase と std::remove_if を使用してベクターからオブジェクトを削除しようとしています。選択アラを行う外部名前空間があります:
template<unsigned int value, someType collection>
bool Namespace::isValid(const Foo* object){
do something
}
これで、有効な場合にフィルタリングしたい要素を含むベクトルがあります。そうするために私は:
std::vector<foo*> myVector;
//fill it
myVector.erase( std::remove_if(myVector.begin(), myVector.end(), Namespace::isValid<myValue, myCollectionType>), myVector.end());
これで問題なく動作し、すべての有効な候補が削除されますが、実際には他のすべてを保持して削除したいと考えています。したがって、述語を否定する必要があります。そうする方法はありますか?残念ながら、C++11 は現在、このコンテキストではサポートされていません。
ありがとう