タグ付けされた質問 「templates」

テンプレートタグは、汎用プログラミング(特にC ++)、およびテンプレートエンジンを使用したデータ/ドキュメントの生成など、複数のコンテキストで使用されます。このタグを実装の重い質問に使用する場合-実装が記述されているコード言語にタグを付けます。

16
クラスに特定のシグネチャのメンバー関数があるかどうかを確認する
私は、クラスが特定の署名の特定のメンバー関数を持っているかどうかを検出するためのテンプレートトリックを求めています。 問題はここで引用したものと似てい ます が、同じではありません。Sutterの本の項目で、クラスCがメンバー関数を提供する必要があるという質問に答えました特定の署名がないと、プログラムはコンパイルされません。私の問題では、クラスにその機能がある場合は何かをする必要があります。 同様の問題がboost :: serializationにも直面しましたが、私が彼らが採用した解決策は好きではありません。特定のメンバー関数を定義しない限り、デフォルトで特定のシグネチャを持つフリー関数(定義する必要がある)を呼び出すテンプレート関数(彼らの場合、特定のシグネチャを持つ特定のタイプの2つのパラメータをとる「シリアライズ」、それ以外の場合、コンパイルエラーが発生します。それは、侵入型と非侵入型の両方のシリアライゼーションを実装することです。 次の2つの理由で、このソリューションは好きではありません。 非侵入型にするには、boost :: serialization名前空間にあるグローバルな「serialize」関数をオーバーライドする必要があります。これにより、クライアントコードで名前空間のブーストと名前空間のシリアル化を開くことができます。 この混乱を解決するためのスタックは、10〜12の関数呼び出しでした。 そのメンバー関数を持たないクラスのカスタム動作を定義する必要があり、エンティティは異なる名前空間内にあります(ある名前空間で定義されているグローバル関数を別の名前空間にある間にオーバーライドしたくない) このパズルを解くためのヒントを教えてもらえますか?
135 c++  c++11  templates  sfinae 


25
Bashテンプレート:Bashを使用してテンプレートから構成ファイルを構築する方法?
私は自分のWebサーバー用のApacheとPHPの構成ファイルの作成を自動化するスクリプトを書いています。CPanelやISPConfigのようなGUIを使いたくありません。 ApacheとPHPの構成ファイルのテンプレートがいくつかあります。Bashスクリプトは、テンプレートを読み取り、変数を置換し、解析されたテンプレートをいくつかのフォルダーに出力する必要があります。それを行う最良の方法は何ですか?私はいくつかの方法を考えることができます。どちらが最高ですか、それを行うにはもっと良い方法がありますか?純粋なBashでそれを実行したい(たとえば、PHPでは簡単です) 1)テキストファイルの$ {}プレースホルダーを置き換える方法は? template.txt: the number is ${i} the word is ${word} script.sh: #!/bin/sh #set variables i=1 word="dog" #read in template one line at the time, and replace variables #(more natural (and efficient) way, thanks to Jonathan Leffler) while read line do eval echo "$line" done < "./template.txt" ところで、ここで外部ファイルに出力をリダイレクトするにはどうすればよいですか?変数に引用符が含まれている場合、何かをエスケープする必要がありますか? …

7
Twigでクラス定数にアクセスする方法は?
エンティティクラスにいくつかのクラス定数があります。例: class Entity { const TYPE_PERSON = 0; const TYPE_COMPANY = 1; } 通常のPHPでは、私はよくやるif($var == Entity::TYPE_PERSON)ので、Twigでこの種のことをしたいと思います。出来ますか?
133 php  templates  twig 

4
名前空間stdでテンプレートクラスを転送宣言するにはどうすればよいですか?
#ifndef __TEST__ #define __TEST__ namespace std { template<typename T> class list; } template<typename T> void Pop(std::list<T> * l) { while(!l->empty()) l->pop(); } #endif 私のメインでその関数を使用しました。エラーが発生します。もちろん、私はstd::list(アロケーターだと思う)のテンプレートパラメーターが他にもあることを知っています。しかし、それは要点の外です。転送宣言できるようにするには、テンプレートクラスの完全なテンプレート宣言を知っている必要がありますか? 編集:以前はポインタを使用していませんでした-参照でした。ポインタで試してみます。
131 c++  templates  g++ 

8
正式には、typenameは何のためのものですか?
gccテンプレートを使用しているときに、本当に判読できないエラーメッセージが吐き出されるのを見たことがあります。具体的には、一見正しい宣言が非常に奇妙なコンパイルエラーを引き起こし、魔法のようにtypenameキーワードの先頭にプレフィックスを付けることで消えてしまうという問題がありました。宣言...(たとえば、先週、2つのイテレータを別のテンプレートクラスのメンバーとして宣言していたので、これを行わなければなりませんでした)... 何の話typename?
131 c++  templates 

8
Railsでは、ビューを使用してJSONをどのようにレンダリングしますか?
ユーザーのコントローラーにいて、showリクエストに対するjson応答を取得したい場合は、views / users / dirにshow.jsonという名前のファイルを作成し、users#showの後に作成するとよいでしょう。アクションが完了すると、ファイルがレンダリングされます。 現在、あなたは次の行に沿って何かをする必要があります: def show @user = User.find( params[:id] ) respond_to do |format| format.html format.json{ render :json => @user.to_json } end end しかし、次のように自動的にレンダリングされるshow.jsonファイルを作成するだけでよいのです。 def show @user = User.find( params[:id] ) respond_to do |format| format.html format.json end end これは私に多くの悲しみを救い、コントローラーでjsonをレンダリングするときに得られる恐ろしい汚い感覚を洗い流します


13
PHPでHTMLをエコーするにはどうすればよいですか?
HTMLを条件付きで出力してページを生成したいので、PHP 4以降でHTMLの複数行スニペットをエコーする最も簡単な方法は何ですか?Smartyのようなテンプレートフレームワークを使用する必要がありますか? echo '<html>', "\n"; // I'm sure there's a better way! echo '<head>', "\n"; echo '</head>', "\n"; echo '<body>', "\n"; echo '</body>', "\n"; echo '</html>', "\n";
122 php  html  templates  echo 

9
C ++ SFINAEの例?
テンプレートのメタプログラミングについてもっと知りたいです。SFINAEが「置換の失敗はエラーではない」の略であることを知っています。しかし、誰かがSFINAEの良い使い方を私に示すことができますか?

4
テンプレート<unsigned int N>はどういう意味ですか?
テンプレートを宣言するとき、次のようなコードに慣れています。 template &lt;class T&gt; しかし、この質問では、彼らは以下を使用しました: template &lt;unsigned int N&gt; コンパイルできることを確認しました。しかし、それはどういう意味ですか?非型パラメーターですか?もしそうなら、どのようにして型パラメーターのないテンプレートを作成できますか?
121 c++  templates 

4
Djangoテンプレートの係数%
私はdjangoのモジュラス演算子のようなものを使用する方法を探しています。私がやろうとしていることは、ループの4つおきの要素にクラス名を追加することです。 モジュラスを使用すると、次のようになります。 {% for p in posts %} &lt;div class="post width1 height2 column {% if forloop.counter0 % 4 == 0 %}first{% endif %}}"&gt; &lt;div class="preview"&gt; &lt;/div&gt; &lt;div class="overlay"&gt; &lt;/div&gt; &lt;h2&gt;p.title&lt;/h2&gt; &lt;/div&gt; {% endfor %} もちろん、これは%が予約文字であるため機能しません。これを行う他の方法はありますか?
120 python  django  templates 

11
float値をテンプレートパラメータとして使用できないのはなぜですか?
floatテンプレートパラメータとして使用しようとすると、コンパイラはこのコードを要求しますが、int正常に動作します。 floatテンプレートパラメーターとして使用できないからでしょうか? #include&lt;iostream&gt; using namespace std; template &lt;class T, T defaultValue&gt; class GenericClass { private: T value; public: GenericClass() { value = defaultValue; } T returnVal() { return value; } }; int main() { GenericClass &lt;int, 10&gt; gcInteger; GenericClass &lt; float, 4.6f&gt; gcFlaot; cout &lt;&lt; "\n sum of integer is …

3
テンプレートでインラインキーワードを使用しても意味がありますか?
テンプレートはヘッダー内で定義されており、コンパイラーは関数のインライン化が有利であるかどうかを判断できるので、意味がありますか?最近のコンパイラーは関数をインライン化するタイミングをよく知っており、inlineヒントを無視していると聞きました。 編集:両方の回答を受け入れたいのですが、これは不可能です。問題を解決するために、私はフレネルの回答を受け入れています。ほとんどの票を獲得し、彼は正式に正しいからですが、コメントで述べたように、私は別の観点から、パピーとコンポーネント10の回答も正しいものと見なします。 問題はC ++のセマンティクスにあり、inlineキーワードとインライン化の場合は厳密ではありません。phresnelは「それを意味する場合はインラインで書き込む」と言いますが、実際の意味inlineは、元の意味から、パピーが言うように「コンパイラーがODR違反について噛み付くことを停止する」というディレクティブに発展したため、明確ではありません。
119 c++  templates  inline 

20
C ++列挙型を文字列に簡単にマップする方法
私が使用しているいくつかのライブラリヘッダーファイルに一連の列挙型があり、列挙値をユーザー文字列に、またはその逆に変換する方法が必要です。 「ユーザー文字列」は列挙よりも読みやすくする必要があるため、RTTIはそれを行いません。 ブルートフォースソリューションはこのような関数の束になるでしょうが、私はそれが少しCに似すぎていると感じています。 enum MyEnum {VAL1, VAL2,VAL3}; String getStringFromEnum(MyEnum e) { switch e { case VAL1: return "Value 1"; case VAL2: return "Value 2"; case VAL1: return "Value 3"; default: throw Exception("Bad MyEnum"); } } テンプレートを使用したエレガントな解決策があると直感しますが、それでもまだ頭が十分ではありません。 更新:提案をありがとう-列挙型がサードパーティのライブラリヘッダーで定義されていることを明確にすべきだったので、列挙型の定義を変更する必要はありません。 今の私の直感は、テンプレートを避けて次のようなことをすることです: char * MyGetValue(int v, char *tmp); // implementation is trivial #define ENUM_MAP(type, …
119 c++  templates  enums 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.