質問

C++テンプレートMetaprogramming:コミュニケーション能の技術力を超えて

...欠点表現のテンプレートがいを書く、複雑な表現が評価だけが遅れまでの代入演算子はメソッドが呼び出されます。場合にプログラマを望の再利用は一部の中間結果なの評価では早く、彼女が強制を宣言するのには複雑なタイプのように:

Expression<
           Expression<Array,plus,Array>,
           plus,
           Expression<Array,minus,Array>
          > intermediate = a + b + (c - d);

(た。通知をどのようにこなうと重複しを反映して構造のcomputationandいが必要となる場合があるとして持つ式の変化をも凌駕する存在でありたいのですか?これは長年の問題のためのC++DSELs.通常の回避策を使用することで、表現を用停止、消去その場合は間隔で動の派遣.また最近では、養Bjarne Stroustrup自身、再利用の歴史的経緯で残自動キーワードをタイプを控除し、変数の宣言、その上で書き直されなければいけません。

auto intermediate = a + b + (c - d);

この機能が、大きなチャンスにもなります。C++DSEL著者およびユーザーにも...

でこの問題を解決する現在のc++の標準(C++0X)

例えば、いくの表現:

Expr内のX、Y

マトリクスA、B、C、D

X=A+B+C

Y=X+C

D=X+Y

場オペレーター:=評価の表現の新します。

役に立ちましたか?

解決

今のところ、あなたは常に<のhref = "http://www.boost.org/doc/libs/1_40_0/doc/html/typeof/refe.html#typeof.auto" のrel = "nofollowをnoreferrerを使用することができます「C ++ 0xのの自動キーワードの代わりに> BOOST_AUTO()のがより簡単に中間結果を取得します。

Matrix x, y;
BOOST_AUTO(result, (x + y) * (x + y)); // or whatever.

他のヒント

かわからないご質問です。 auto する再利用 C++0x のための 自動型推論.

個人的にはこと欠点のための表現のテンプレートでも中継をさらに小型寿命の物から成り立っていますができfalseの場合は表現のテンプレートとして捉えについても説明します こちらの.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top