Являются ли сравнения между итератором и итератором const _неэффективными?

Вариант А:

const auto end = whatever.end();
for (auto it = whatever.begin(); it != end; ++it)
{
    //...
}

Вариант б:

const auto end = whatever.cend(); // note the call to cend insteand of end here
for (auto it = whatever.begin(); it != end; ++it)
{
    //...
}

Есть ли основания полагать, что вариант b будет менее эффективным, чем вариант a, поскольку условие цикла сравнивает два разных типа итераторов? Вызывает ли это неявное преобразование it?

(endиспользуется несколько раз внутри цикла for, поэтому я хочу поднять его.)

11
задан fredoverflow 6 July 2012 в 13:56
поделиться