Questions tagged «templates»

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

10
Python中的泛型/模板?
python如何处理通用/模板类型的场景?假设我想创建一个外部文件“ BinaryTree.py”,并使其处理二进制树,但是对于任何数据类型。 因此,我可以将自定义对象的类型传递给它,并为该对象提供一个二叉树。如何在python中完成?

2
std :: is_function如何实现?
以下是如何实现的std::is_function? template<class T> struct is_function : std::integral_constant< bool, !std::is_const<const T>::value && !std::is_reference<T>::value > {}; (来自CPP参考) 在我看来,int在此定义下,an 将是一个函数。我想念什么?
82 c++  templates  std  sfinae 

6
使用C ++ 11复制代码
我目前正在从事一个项目,但遇到以下问题。 我有一个C ++方法,希望以两种不同的方式工作: void MyFunction() { foo(); bar(); foobar(); } void MyFunctionWithABonus() { foo(); bar(); doBonusStuff(); foobar(); } 而且我不想重复我的代码,因为实际功能要长得多。问题是在任何情况下都不能在调用MyFunction而不是MyFunctionWithABonus时增加程序的执行时间。这就是为什么我不能只具有通过C ++比较检查的布尔参数。 我的想法是使用C ++模板虚拟地复制我的代码,但是我无法想到一种无需额外执行时间且无需复制代码的方法。 我不是模板专家,所以我可能会缺少一些东西。 你们有什么主意吗?还是在C ++ 11中这是不可能的?
80 c++  c++11  templates 

1
具有相关范围的嵌套模板
在以下错误的上下文中,从属范围是什么,类型名的含义是什么? $ make g++ -std=gnu++0x main.cpp main.cpp:18:10: error: need 'typename' before 'ptrModel<std::vector<Data> >::Type' because 'ptrModel<std::vector<Data> >' is a dependent scope make: *** [all] Error 1 /* * main.cpp */ #include <vector> #include <memory> template<typename T> struct ptrModel { typedef std::unique_ptr<T> Type; }; template<typename Data> struct ptrType { typedef ptrModel< std::vector<Data> …
80 c++  templates  scope  nested 


5
ES6模板文字比字符串连接快吗?
在ES6中使用字符串连接或模板文字时,HTML代码生成在现代浏览器中运行的速度可测得更快吗? 例如: 字符串串联 "<body>"+ "<article>"+ "<time datetime='" + date.toISOString() +"'>"+ date +"</time>"+ "</article>"+ "</body>" 模板文字 `<body> <article> <time datetime='${ date.toISOString() }'>${ date }</time> </article> </body>`

4
与模板类的朋友一起创建类模板,这里到底发生了什么?
假设我正在为二叉树创建一个类BT,并且有一个描述该树的元素的类BE,例如 template<class T> class BE { T *data; BE *l, *r; public: ... template<class U> friend class BT; }; template<class T> class BT { BE<T> *root; public: ... private: ... }; 这似乎可行;但是我对下面发生的事情有疑问。 我最初试图将朋友声明为 template<class T> friend class BT; 但是,似乎有必要在此处使用U(或以外的其他方法T),这是为什么呢?这是否意味着任何人BT都是任何特定BE班级的朋友? 在IBM页面上的模板和朋友页面上,有函数类型的朋友关系类型的示例,但类却没有(并猜测语法尚未在解决方案上收敛)。我更想了解如何针对我希望定义的朋友关系类型正确获取规范。
78 c++  class  templates 

6
可变参数模板包扩展
我正在尝试学习可变参数的模板和功能。我不明白为什么这段代码无法编译: template<typename T> static void bar(T t) {} template<typename... Args> static void foo2(Args... args) { (bar(args)...); } int main() { foo2(1, 2, 3, "3"); return 0; } 当我编译它失败并出现错误: 错误C3520:“ args”:必须在这种情况下扩展参数包 (在功能上foo2)。

2
“ template <>”和“ template”不带括号-有什么区别?
假设我已经声明: template &lt;typename T&gt; void foo(T&amp; t); 现在,两者之间有什么区别 template &lt;&gt; void foo&lt;int&gt;(int&amp; t); 和 template void foo&lt;int&gt;(int&amp; t); 在语义上?在没有上下文的情况下,无括号的模板和无括号的模板是否具有其他语义? 相关信息: 如何强制C ++模板的特定实例实例化?

10
C ++获取模板中的类型名称
我正在编写一些用于解析某些文本数据文件的模板类,因此很可能大部分解析错误是由于数据文件中的错误而引起的,这些错误大部分不是程序员编写的,因此需要关于应用为何无法加载的好消息,例如: 解析example.txt时出错。[MySectiom]键的值(“ notaninteger”)不是有效的int 我可以从传递给模板函数的参数以及类中的成员vars得出文件名,节名和键名,但是我不确定如何获取模板函数尝试转换为的类型的名称。 我当前的代码看起来像,只对纯字符串等进行了专门化处理: template&lt;typename T&gt; T GetValue(const std::wstring &amp;section, const std::wstring &amp;key) { std::map&lt;std::wstring, std::wstring&gt;::iterator it = map[section].find(key); if(it == map[section].end()) throw ItemDoesNotExist(file, section, key) else { try{return boost::lexical_cast&lt;T&gt;(it-&gt;second);} //needs to get the name from T somehow catch(...)throw ParseError(file, section, key, it-&gt;second, TypeName(T)); } } 宁可不必对数据文件可能使用的每种类型都进行特定的重载,因为它们有很多负载... 我还需要一个解决方案,除非出现异常,否则不会产生任何运行时开销,即我想要一个完全编译时的解决方案,因为此代码被称为“成千上万次”,并且加载时间已经有些长了。 编辑:好的,这是我想出的解决方案: …

3
如何将选定的命名参数传递给Jinja2的include上下文?
使用Django模板引擎,当使用命名参数设置自定义上下文时,我可以包括另一个局部模板,如下所示: {% include "list.html" with articles=articles_list1 only %} {% include "list.html" with articles=articles_list2 only %} 正如你可能会假设,articles_list1并且articles_list2是两个不同的列表,但我可以重复使用同样的list.html将被使用模板articles变量。 我正在尝试使用Jinja2实现相同的目的,但是我看不到推荐的方法,因为with不支持该关键字。
76 templates  jinja2 

10
AngularJS-服务器端渲染
正如你可能知道,制作的Airbnb opensourced Rendr(http://nerds.airbnb.com/weve-open-sourced-rendr)应使服务器端渲染的主干应用程序。这很酷,因为可以在服务器上运行模板渲染的第一个“迭代”,并且客户端可以获得完全渲染的HTML文档以及整个JS应用程序。它极大地减少了显示时间,并且可以摆脱其他服务器端模板系统。 那么,有人设法用jsdom或ZombieJS渲染AngularJS吗?理论上,Node.js上的这些dom /浏览器仿真对于简单的服务器端Angular模板应该足够了,但是我发现使用谷歌搜索它的结果不是很确定。

6
什么是Mixins(概念)
我试图让我了解Mixin概念,但是我似乎无法理解它的含义。我看到的是,这是一种通过使用继承来扩展类功能的方法。我读过人们将它们称为“抽象子类”。谁能解释为什么? 如果您能根据以下示例解释您的答案,将不胜感激(摘自我的演讲幻灯片之一):
75 c++  oop  templates  mixins 



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.