問題タブ [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.

0 投票する
15 に答える
13948 参照

c++ - 実生活でテンプレート メタプログラミングを使用している人はいますか?

私は 5 年以上前にテンプレート メタプログラミングを発見し、 Modern C++ Designを読んで大きな刺激を受けましたが、実際にそれを使用する機会を見つけたことはありませんでした。

この手法を実際のコードで使用したことがありますか?

Boostへの貢献者は応募する必要はありません ;o)

0 投票する
15 に答える
41919 参照

c++ - C ++テンプレートチューリング完全?

C++のテンプレートシステムはコンパイル時にチューリング完全であると言われています。これは、この投稿ウィキペディアでも言及されています。

このプロパティを利用する計算の重要な例を提供できますか?

この事実は実際に役立ちますか?

0 投票する
10 に答える
9427 参照

c++ - C++ で見た最もクールなメタプログラミングの例は何ですか?

C++ で見た最もクールなメタプログラミングの例は何ですか?
C++ で見たメタプログラミングの実用的な用途は何ですか?

0 投票する
33 に答える
198418 参照

c++ - クラスメンバー関数の存在をテンプレート化してチェックしますか?

特定のメンバー関数がクラスで定義されているかどうかに応じて動作を変更するテンプレートを作成することは可能ですか?

これが私が書きたいことの簡単な例です:

したがって、class TtoString()定義されている場合は、それを使用します。それ以外の場合は、そうではありません。やり方がわからない魔法の部分は「FUNCTION_EXISTS」の部分です。

0 投票する
3 に答える
2625 参照

metaprogramming - 「メタ」という言葉はどういう意味ですか?

その言葉はどういう意味ですか?

以下の場合と同じ概念ですか?

  1. C++ でのテンプレートのメタプログラミング
  2. データベースまたはファイル システムのメタデータ
0 投票する
20 に答える
102412 参照

c++ - std::tuple の要素をどのように反復処理できますか?

(C++11 を使用して) タプルを反復処理するにはどうすればよいですか? 私は次のことを試しました:

しかし、これは機能しません:

エラー 1: 申し訳ありませんが、実装されていません: 'Listener ...' を固定長の引数リストに展開できません。
エラー 2: i は定数式には使用できません。

では、タプルの要素を正しく反復処理するにはどうすればよいでしょうか?

0 投票する
3 に答える
2276 参照

c++ - ポリシーベースのテンプレート設計: クラスの特定のポリシーにアクセスするには?

テンプレート化されたいくつかのポリシーを使用するクラスがあります。次の例で呼び出さDishれます。Dishこれらのesの多くを (単純な基本クラスへのポインターを使用して) に格納vectorしていますが、それらを抽出して使用したいと考えています。しかし、私はそれらの正確なタイプを知りません。

コードは次のとおりです。少し長いですが、とてもシンプルです。

トリッキーな部分は、main()関数にあります。

どうすればデザートにアクセスできますか? ストレージから取得しているオブジェクトの完全な型は言うまでもなく、デザートの型 (テンプレート化されている) もわかりません。

これは単なるおもちゃの例ですが、私のコードはこれに縮小されると思います。これらのクラスを渡したいだけDishで、コードのさまざまな部分がさまざまな部分にアクセスします (例では、前菜、メイン ディッシュ、またはデザート)。

0 投票する
1 に答える
257 参照

c++ - これは機能する必要がありますか?

パラメータの1つとして関数ポインタを持つ型にメタ関数を特化しようとしています。コードは問題なくコンパイルされますが、タイプとは一致しません。

出力は常に渡される型であり、bool_ではありません。

0 投票する
1 に答える
18332 参照

c++ - メンバー関数を特殊化するときの「テンプレート パラメーター リストが多すぎます」エラー

次のように、テンプレート クラス内でいくつかのテンプレート メンバー メソッドを定義したいと思います。

しかし、テンプレート クラスをインスタンス化するときに、3 つの引数メソッド定義に関するエラーがあります。

私が間違っていることを教えてください。(2 番目) の方法は問題ないのに、(3 番目) の方法ではコンパイル時にエラーが発生するのはなぜですか?

0 投票する
3 に答える
954 参照

c++ - チューリングマシン:しかし、なぜテンプレートメタプログラミングを使用するのですか?

私は工学部の最終学年の学生です。私と私の友人は、最終年度のプロジェクトを「テンプレートメタプログラミングを使用したチューリングマシンのシミュレーション」にすることを決定しました。

「チューリングマシン」と「テンプレートメタプログラミング」とは何かは理解していますが、TMPを使用せずにチューリングマシンを設計すると、なぜシミュレーションが面倒になるのでしょうか。TMPを使用した場合、どのような利点が得られますか。また、TMPを使用せずに従来のアプローチを使用した場合、どのようなメリットが得られますか。

どのように進めるかについての提案はありますか?