バリアント a:
const auto end = whatever.end();
for (auto it = whatever.begin(); it != end; ++it)
{
// ...
}
バリアント b:
const auto end = whatever.cend(); // note the call to cend insteand of end here
for (auto it = whatever.begin(); it != end; ++it)
{
// ...
}
ループ条件が 2 つの異なる種類の反復子を比較するため、バリアント b がバリアント a よりも効率的でないと信じる理由はありますか? これは で暗黙の変換を引き起こしますit
か?
(end
for ループ内で複数回使用されるため、それを巻き上げたいと思います。)