gpt4 book ai didi

c++ - 您可以在 autoexp.dat 预览中使用连续的 #if block 吗?

转载 作者:行者123 更新时间:2023-11-28 08:23:43 25 4
gpt4 key购买 nike

我有一个二次方程结构,我想让它在 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 block ,我还能在这里做我想做的事——而不是放入 dll 中吗?

最佳答案

我认为你必须使用嵌套 #if的实现这样的事情。检查如何std::complex<*>默认情况下完成 autoexp.dat .

这将需要大量输入才能涵盖所有可能的组合。你真的需要吗?也许将其简单地显示为一个结构对于实际目的来说已经足够好了。

关于c++ - 您可以在 autoexp.dat 预览中使用连续的 #if block 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4873475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com