, Удаление теста будет выполнено оптимизатором, который концептуально запускается после того, как компилятор выяснил, что в первую очередь означает код.

template <bool flag>
class foo
{
    public:
        int bar()
        {
            if(flag)
            {
                // stuff
            }
        }
};

компилятор компилирует этот класс, он заменяет параметр флага на true или false. Тогда имеем if (true) (или if (false)). Затем предложение if проверяет постоянное выражение и будет удалено во время компиляции. Можно ли ожидать, что компиляторы будут вести себя так?

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

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