0

私は2次方程式の構造体を持っています。私はそれをVisual Studio 2008のデバッガでより良く見せたいと思います。ここでは構造体です:autoexp.datプレビューで連続#ifブロックを使用できますか?

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($c.linearCoefficent < 0.0f)...

始まり数が第2の#if枝に対応する行、エラーではありません。シーケンシャルな#ifブロックを持つことができないということを意味するならば、dllに落とされることなく、ここで私が望むことを他の方法で行うことができますか?

答えて

1

私は#ifのように何かを達成するために入れ子にしなければならないと思います。 std::complex<*>がデフォルトのautoexp.datでどのように行われているかを確認します。

これは、可能なすべての組み合わせをカバーするために多くのタイピングが必要になります。本当にそれが必要ですか?単純に構造体として表示することは、実用上十分です。

+0

ええ、私はこれらの+/-の組み合わせを手作業でやっているわけではありません。ジャンプすることができます。 'std :: complex <*>'を指摘してくれてありがとう。 – tenpn

関連する問題