const int bob = 0;
if(bob)
{
int fred = 6/bob;
}
вы получите ошибку в строке, где делится:
«ошибка C2124: разделить или изменить на ноль»
, что плохо, поскольку столь же неизбежно, что проверка «если» не удастся, так как это деление приведет к делению на 0. Честно говоря, я не вижу причин для того, чтобы компилятор хоть что-то вычислял в «если», кроме как для обеспечения целостности скобки.
в любом случае, очевидно, что этот пример не является моей проблемой, моя проблема возникает, когда я выполняю сложные шаблонные вещи, чтобы попытаться сделать как можно больше во время компиляции, в некоторых случаях аргументы могут быть равны 0.
есть ли способ исправить эту ошибку? или отключить это? или любые лучшие обходные пути, чем это:
на данный момент единственное, что я могу придумать (что я делал раньше, когда столкнулся с той же проблемой при рекурсивном доступе к перечислению), - это использовать специализацию шаблонов для выполнения 'if'.
О да, я использую Visual Studio Professional 2005 SP1 с исправлением vista / win7.