10

C ++式テンプレートシステムを作成するための良い入門書は何ですか?一時的な値(大きい場合があります)を避けながらユーザー定義型の算術演算を表現し、既存のライブラリを適用するのではなく、これを直接行う方法を学びたいと思います。

Todd Veldhuizenのオリジナルの論文と、 Josuttis C ++ Templatesの本からの例、およびKreft&Langerによる記事を見つけました。これは、現代のC ++に関するコースの講義6で言及されており、Josuttisを参照しています。POOMAライブラリの背景には、式テンプレートがうまく導入されています。

シンプルでわかりやすい説明を探しています。

4

6 に答える 6

7

謎解きされた式テンプレートはかなりよく説明されていることがわかりました。まず、テンプレートを使用せずに数式を実装する方法を示し、基本的な構成要素と概念を示します。

記事の第2部では、パフォーマンスを向上させ、コードを削減するために、代わりにテンプレートを使用するように初期実装をリファクタリングする方法を示します。

IMO、この記事は、「C ++テンプレート:完全ガイド」の式テンプレートの章に代わる優れた記事です。

于 2011-07-15T03:49:15.797 に答える
5

C ++テンプレートのコピーを入手する必要があります:完全ガイド。

リンク先のコード例には付随するテキストがありません。これは非常に役立ちます(式テンプレートの章は22ページの長さです)。テキストがなければ、あなたが持っているのは、それが何をするのか、そしてそれがどのようにそしてなぜそれをするのかについてのコメントや説明のないコードだけです。

于 2010-03-26T21:30:24.830 に答える
2

EricNieblerBoost.Protoライブラリを検索することを強くお勧めします。非常に優れた紹介資料がC++で見つかります-次へ:

http://cpp-next.com/archive/2010/08/expressive-c-introduction/

Boost'con2010での彼の講演も非常に興味深いものです

于 2011-05-04T03:34:02.733 に答える
0

科学的なc++の本を除いて、すべてのソースがあります。これは、実際には元の論文であり(とにかくこのトピックに関連しています)、かなり古くなっています。式テンプレートのアイデアから構築されたより現代的な手法については、C ++テンプレートメタプログラミングを参照できますが、「単純な」ものは、​​単純になるまですぐには利用できません。

于 2010-03-26T21:30:44.253 に答える
0

BoostOperators-ArithmeticでBoostOperatorsを確認することをお勧めします。これらは、基本的な算術演算と比較演算を拡張するテンプレート化されたメソッドです。

于 2010-03-27T00:36:51.133 に答える
0

やりたいことについては、Boost.ublasのコードを正確に確認する必要があります。

ファイルから始めてvector.hpp、階層(の親vector<>)に戻ります。行列はもう少し複雑ですが、メカニズムは同じです。

さて、最初の試みとしてライブラリの複雑さを再現しようとしないようにアドバイスするかもしれませんublas_expression。タイプをベースオブジェクトにしてから二項演算子を実装することで、より簡単に行うことができます。

こちらもご覧ください:http ://www.bnikolic.co.uk/blog/cpp-expression-minimal.html

于 2013-01-20T22:36:53.107 に答える