問題タブ [template-meta-programming]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 実生活でテンプレート メタプログラミングを使用している人はいますか?
私は 5 年以上前にテンプレート メタプログラミングを発見し、 Modern C++ Designを読んで大きな刺激を受けましたが、実際にそれを使用する機会を見つけたことはありませんでした。
この手法を実際のコードで使用したことがありますか?
Boostへの貢献者は応募する必要はありません ;o)
c++ - C++ で見た最もクールなメタプログラミングの例は何ですか?
C++ で見た最もクールなメタプログラミングの例は何ですか?
C++ で見たメタプログラミングの実用的な用途は何ですか?
c++ - クラスメンバー関数の存在をテンプレート化してチェックしますか?
特定のメンバー関数がクラスで定義されているかどうかに応じて動作を変更するテンプレートを作成することは可能ですか?
これが私が書きたいことの簡単な例です:
したがって、class T
がtoString()
定義されている場合は、それを使用します。それ以外の場合は、そうではありません。やり方がわからない魔法の部分は「FUNCTION_EXISTS」の部分です。
metaprogramming - 「メタ」という言葉はどういう意味ですか?
その言葉はどういう意味ですか?
以下の場合と同じ概念ですか?
- C++ でのテンプレートのメタプログラミング
- データベースまたはファイル システムのメタデータ
c++ - std::tuple の要素をどのように反復処理できますか?
(C++11 を使用して) タプルを反復処理するにはどうすればよいですか? 私は次のことを試しました:
しかし、これは機能しません:
エラー 1: 申し訳ありませんが、実装されていません: 'Listener ...' を固定長の引数リストに展開できません。
エラー 2: i は定数式には使用できません。
では、タプルの要素を正しく反復処理するにはどうすればよいでしょうか?
c++ - ポリシーベースのテンプレート設計: クラスの特定のポリシーにアクセスするには?
テンプレート化されたいくつかのポリシーを使用するクラスがあります。次の例で呼び出さDish
れます。Dish
これらのesの多くを (単純な基本クラスへのポインターを使用して) に格納vector
していますが、それらを抽出して使用したいと考えています。しかし、私はそれらの正確なタイプを知りません。
コードは次のとおりです。少し長いですが、とてもシンプルです。
トリッキーな部分は、main()
関数にあります。
どうすればデザートにアクセスできますか? ストレージから取得しているオブジェクトの完全な型は言うまでもなく、デザートの型 (テンプレート化されている) もわかりません。
これは単なるおもちゃの例ですが、私のコードはこれに縮小されると思います。これらのクラスを渡したいだけDish
で、コードのさまざまな部分がさまざまな部分にアクセスします (例では、前菜、メイン ディッシュ、またはデザート)。
c++ - これは機能する必要がありますか?
パラメータの1つとして関数ポインタを持つ型にメタ関数を特化しようとしています。コードは問題なくコンパイルされますが、タイプとは一致しません。
出力は常に渡される型であり、bool_ではありません。
c++ - メンバー関数を特殊化するときの「テンプレート パラメーター リストが多すぎます」エラー
次のように、テンプレート クラス内でいくつかのテンプレート メンバー メソッドを定義したいと思います。
しかし、テンプレート クラスをインスタンス化するときに、3 つの引数メソッド定義に関するエラーがあります。
私が間違っていることを教えてください。(2 番目) の方法は問題ないのに、(3 番目) の方法ではコンパイル時にエラーが発生するのはなぜですか?
c++ - チューリングマシン:しかし、なぜテンプレートメタプログラミングを使用するのですか?
私は工学部の最終学年の学生です。私と私の友人は、最終年度のプロジェクトを「テンプレートメタプログラミングを使用したチューリングマシンのシミュレーション」にすることを決定しました。
「チューリングマシン」と「テンプレートメタプログラミング」とは何かは理解していますが、TMPを使用せずにチューリングマシンを設計すると、なぜシミュレーションが面倒になるのでしょうか。TMPを使用した場合、どのような利点が得られますか。また、TMPを使用せずに従来のアプローチを使用した場合、どのようなメリットが得られますか。
どのように進めるかについての提案はありますか?