Questions tagged «templates»

template标记用于多种环境:通用编程(尤其是C ++),以及使用模板引擎生成数据/文档。在实现上有很多疑问时使用此标记-标记实现所使用的代码语言。

16
检查类是否具有给定签名的成员函数
我要一个模板技巧来检测一个类是否具有给定签名的特定成员函数。 这个问题类似于一个引用在这里 http://www.gotw.ca/gotw/071.htm ,但不一样的:在萨特的书的项目,他回答的问题是C类必须提供带成员函数特定签名,否则程序将无法编译。在我的问题中,如果一个类具有该功能,则需要执行某些操作,否则执行“其他操作”。 boost :: serialization面临着类似的问题,但我不喜欢它们采用的解决方案:模板函数默认情况下调用具有特定签名的自由函数(必须定义),除非您定义特定的成员函数(在他们的情况下,“序列化”使用两个具有给定类型的参数(带有特定签名),否则会发生编译错误。那就是要实现介入式和非介入式序列化。 我不喜欢该解决方案,原因有两个: 要成为非侵入式,您必须覆盖boost :: serialization名称空间中的全局“序列化”功能,以便您可以在客户端代码中打开名称空间boost和名称空间序列化! 解决该混乱的堆栈是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关键字的开头加上前缀而神奇地消失了。声明...(例如,就在上周,我将两个迭代器声明为另一个模板化类的成员,因此我必须这样做)... 这是什么故事typename?
131 c++  templates 

8
在Rails中,如何使用视图呈现JSON?
假设您位于用户控制器中,并且想要获取显示请求的json响应,那么可以在视图/用户/目录中创建一个名为show.json的文件,并在用户之后#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 


4
模板<unsigned int N>是什么意思?
在声明模板时,我习惯于使用这种代码: template &lt;class T&gt; 但是在这个问题上,他们使用了: template &lt;unsigned int N&gt; 我检查它是否可以编译。但是这是什么意思?它是非类型参数吗?如果是这样,我们如何有一个没有任何类型参数的模板?
121 c++  templates 

4
Django模板中的模数%
我正在寻找一种使用django中的模运算符之类的方法。我想做的是在循环中的每个第四个元素中添加一个类名。 使用模数,它看起来像这样: {% 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提示。 编辑:我想接受两个答案,但这是不可能的。为了解决这个问题,我接受phresnel的答案,因为它获得了最多的选票,而且他在形式上是正确的,但是正如我在评论中提到的那样,从不同的角度来看,我认为Puppy和Component 10的答案也是正确的。 问题出在C ++语义上,在inline关键字和内联的情况下并不严格。phresnel说“如果要用内联写,就直接写内联”,但是实际上含义inline并不明确,因为它从其原始含义演变成一个指令,如Puppy所说,该指令“阻止对ODR违规行为的争论” 。
119 c++  templates  inline 

19
如何轻松地将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 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.