У меня есть структура квадратного уравнения, и я хотел бы, чтобы она выглядела лучше в отладчике visual studio 2008. Вот структура:
struct QuadraticEquation
{
float squareCoefficent; float linearCoefficent; float yIntersection;
}
Я бы хотел, чтобы оно отображалось как правильно отформатированное уравнение в отладчике:
3.0x^2 - 1.3x + 6.5
Вот сценарий предварительного просмотра autoexp.dat:
QuadraticEquation{
preview
(
#if($c.squareCoefficent != 0.0f)
(
#($c.squareCoefficent, "x^2")
)
#if($c.linearCoefficent < 0.0f)
(
#(" - ", -$c.linearCoefficent, "x")
)
#elif($c.linearCoefficent > 0.0f)
(
#(" + ", $c.linearCoefficent, "x")
)
#if($c.yIntersection < 0.0f)
(
#(" - ", -$c.yIntersection)
)
#elif($c.yIntersection > 0.0f)
(
#(" + ", $c.yIntersection)
)
)
}
Довольно прямо. Но когда я запускаю код, я получаю следующее сообщение об ошибке:
ERROR! Autoexp.dat:line(286) for 'QuadraticEquation': Failed to match ')' for preview/children rule
Номер строки соответствует второй ветви #if, которая начинается #if($c.linearCoefficent < 0.0f)...
Если я уберу все, кроме квадратной ветви коэффициента, это не будет ошибкой. Если это означает, что у меня не может быть последовательных блоков #if, как еще я могу делать то, что я хочу здесь - без перехода в DLL?