Y a-t-il des avocats linguistes dans la maison ?
Le code suivant doit-il être compilé ?
include <set>
bool fn( const std::set<int>& rSet )
{
if ( rSet.find( 42 ) != rSet.end() ) return true;
return false;
}
Sur l'une des plateformes (Sun Workshop), cela ne compile pas. Il signale que la fonction find a retourné un itérateur et la fonction end qui a retourné un const_iterator et qu'il n'a pas d'opérateur de comparaison valide entre ces types.
Ce qui suit se compile :
include <set>
bool fn( std::set<int>& rSet )
{
if ( rSet.find( 42 ) != rSet.end() ) return true;
return false;
}