bool image_manager::contains_image(const std::string& filename)
{
return this->map_.count(filename);
}
今私が得る警告は次のとおりです:
warning C4800: 'unsigned int' : forcing value to bool 'true' or 'false' (performance warning)
std::map
ただし、 s count()メソッドの戻りタイプは次のとおりです。
xと同等のキーを持つ要素が見つかった場合は1、それ以外の場合は0。
したがって、ブール値のように使用できます。では、なぜこの警告が表示されるのですか?C ++では、整数は基本的にブールチェックに使用できますか?したがって0 == false
、1 == true
。では、なぜコンパイラーは私に警告をスローするのですか?私もこのようなものを使ってstatic_cast
みました:
return static_cast<bool>(this->map_.count(filename));
しかし、私はまだ警告を受けています。