Как влияет производительность на преобразование в bool в C ++?

[Этот вопрос относится, но не совпадает сэтот.]

Мой компилятор предупреждает о неявном преобразовании или приведении определенных типов к типу bool, тогда как явные преобразования не выдают предупреждение:

long t = 0;
bool b = false;
b = t;                    // performance warning: forcing long to bool
b = (bool)t;              // performance warning
b = bool(t);              // performance warning
b = static_cast(t); // performance warning
b = t ? true : false;     // ok, no warning
b = t != 0;               // ok
b = !!t;                  // ok

Это с Visual C ++ 2008, но я подозреваю, что другие компиляторы могут иметь аналогичные предупреждения.

Итак, мой вопрос: каково влияние приведения / преобразования на производительность?bool? Имеет ли явное преобразование лучшую производительность в некоторых обстоятельствах (например, для определенных целевых архитектур или процессоров)? Неявное преобразование каким-то образом сбивает с толку оптимизатор?

от Microsoftобъяснение их предупреждение не особенно полезно. Они подразумевают, что есть веская причина, но они нене могу это объяснить.

Ответы на вопрос(11)

Ваш ответ на вопрос