Questions tagged «templates»

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


8
* ng如果在模板中,否则
我如何在一个*ngIf陈述中处理多个案件?我已经习惯的Vue或角1与具有if,else if和else,但似乎角4只具有true(if)和false(else)状态。 根据文档,我只能执行以下操作: <ng-container *ngIf="foo === 1; then first else second"></ng-container> <ng-template #first>First</ng-template> <ng-template #second>Second</ng-template> <ng-template #third>Third</ng-template> 但我想有多个条件(类似): <ng-container *ngIf="foo === 1; then first; foo === 2; then second else third"></ng-container> <ng-template #first>First</ng-template> <ng-template #second>Second</ng-template> <ng-template #third>Third</ng-template> 但是我最终不得不使用ngSwitch,这感觉像是一种hack: <ng-container [ngSwitch]="true"> <div *ngSwitchCase="foo === 1">First</div> <div *ngSwitchCase="bar === 2">Second</div> <div *ngSwitchDefault>Third</div> …

3
如何转发声明C ++模板类?
给定一个类似下面的模板类: template<typename Type, typename IDType=typename Type::IDType> class Mappings { public: ... Type valueFor(const IDType& id) { // return value } ... }; 有人如何在头文件中转发声明此类?

24
我可以使用ASP.NET设置HTML /电子邮件模板吗?
我正在一个将发送大量电子邮件的网站上工作。我想同时设置页眉和页脚文本,或者甚至设置模板,以便用户在需要时可以轻松地编辑这些电子邮件。 如果我将HTML嵌入到C#字符串文字中,那么这很丑陋,他们将不得不担心转义。包括用于页眉和页脚的平面文件可能会起作用,但是关于它的某些感觉并不对。 理想的情况.ASPX是以某种方式将页面用作模板,然后告诉我的代码为该页面提供服务,并使用为电子邮件返回的HTML。 有没有一种简单方便的方法可以做到这一点?有没有更好的方法来解决这个问题? 更新: 我添加了一个答案,使您可以使用标准的.aspx页作为电子邮件模板。只需像平时一样替换所有变量,使用数据绑定等即可。然后只需捕获页面的输出,瞧!您有HTML电子邮件! CAVEAT 更新!:我在某些aspx页面上使用MailDefinition类很好,但是当尝试在运行的服务器进程中使用此类时,它失败了。我相信这是因为MailDefinition.CreateMailMessage()方法需要一个有效的控件来引用,即使它并不总是做某事。因此,我建议使用aspx页面的方法,或Mun使用ascx页面的方法,这似乎要好一些。
97 c#  asp.net  email  templates 

8
initializer_list并移动语义
我可以将元素移出std::initializer_list<T>吗? #include <initializer_list> #include <utility> template<typename T> void foo(std::initializer_list<T> list) { for (auto it = list.begin(); it != list.end(); ++it) { bar(std::move(*it)); // kosher? } } 由于std::intializer_list<T>需要特别注意编译器并且没有像C ++标准库的普通容器那样的值语义,因此,我宁愿安全而不愿后悔。

15
将模板化的C ++类拆分为.hpp / .cpp文件-有可能吗?
我在尝试编译在.hpp和.cpp文件之间分割的C ++模板类时遇到错误: $ g++ -c -o main.o main.cpp $ g++ -c -o stack.o stack.cpp $ g++ -o main main.o stack.o main.o: In function `main': main.cpp:(.text+0xe): undefined reference to 'stack<int>::stack()' main.cpp:(.text+0x1c): undefined reference to 'stack<int>::~stack()' collect2: ld returned 1 exit status make: *** [program] Error 1 这是我的代码: stack.hpp: #ifndef _STACK_HPP #define …

7
如何在C ++ 11中输出枚举类的值
如何enum class在C ++ 11中输出an的值?在C ++ 03中,它是这样的: #include <iostream> using namespace std; enum A { a = 1, b = 69, c= 666 }; int main () { A a = A::c; cout << a << endl; } 在c ++ 0x中,此代码无法编译 #include <iostream> using namespace std; enum class A { a …

4
使用不同对象时模板专业化的多种定义
当我在不同的目标文件中使用专用模板时,链接时出现“多个定义”错误。我发现的唯一解决方案涉及使用“内联”功能,但似乎有些解决方法。如何不使用“ inline”关键字解决该问题?如果那不可能,为什么呢? 这是示例代码: paulo@aeris:~/teste/cpp/redef$ cat hello.h #ifndef TEMPLATE_H #define TEMPLATE_H #include <iostream> template <class T> class Hello { public: void print_hello(T var); }; template <class T> void Hello<T>::print_hello(T var) { std::cout << "Hello generic function " << var << "\n"; } template <> //inline void Hello<int>::print_hello(int var) { std::cout << …
95 c++  templates 

4
如何检查模板参数的类型?
假设我有一个模板函数和两个类 class animal { } class person { } template<class T> void foo() { if (T is animal) { kill(); } } 我该如何检查T是动物?我不想在运行时进行检查。谢谢
95 c++  templates 

4
显式模板实例化-什么时候使用?
休息几周后,我试图用David Vandevoorde和Nicolai M. Josuttis撰写的“模板-完整指南”一书来扩展和扩展模板的知识,而现在我想了解的是模板的显式实例化。 我实际上没有这种机制的问题,但是我无法想象我想要或想要使用此功能的情况。如果有人可以向我解释,我将不胜感激。
95 c++  templates 


30
您使用什么C#ReSharper 4+实时模板?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 您使用什么C# ReSharper 4.0模板? 让我们以以下格式分享这些内容: [标题] 可选说明 快捷方式:快捷方式 可用于: [AvailabilitySetting] // Resharper template code snippet // comes here 宏属性(如果存在): Macro1-值-EditableOccurence Macro2-值-EditableOccurence 请每个答案一个宏! 以下是一些NUnit测试装置和独立NUnit测试用例的示例,这些示例以建议的格式描述了实时模板。

4
非类型模板参数
我知道非类型模板参数应该是一个常数整数表达式。有人可以阐明为什么吗? template <std::string temp> void foo() { // ... } error C2993: 'std::string' : illegal type for non-type template parameter 'temp'. 我知道什么是常数积分表达式。不允许std::string使用上述片段中的非常量类型的原因是什么?
93 c++  templates 

6
模板化类中单个方法的模板专业化
始终考虑到至少包含两个.CPP文件的文件包含以下包含我的模板化类的标头,因此此代码可以正确编译: template <class T> class TClass { public: void doSomething(std::vector<T> * v); }; template <class T> void TClass<T>::doSomething(std::vector<T> * v) { // Do something with a vector of a generic T } template <> inline void TClass<int>::doSomething(std::vector<int> * v) { // Do something with a vector of int's } 但是请注意专业化方法中的内联。由于该方法要定义一次以上,因此必须避免链接器错误(在VS2008中为LNK2005)。我了解这一点是因为AFAIK的完整模板专业化与简单方法定义相同。 …

2
“使用ODR”是什么意思?
这只是在另一个问题的背景下出现的。 显然,仅在使用ODR时才实例化类模板中的成员函数。有人可以解释这到底意味着什么。在上一个定义规则(ODR),维基百科的文章并没有提及“ ODR使用”。 但是该标准将其定义为 除非其对象满足在常量表达式中出现的要求(5.19)并且立即应用左值到右值转换(4.1),否则将使用其名称显示为可能评估的表达式的变量。 在[basic.def.odr]中。 编辑:显然这是错误的部分,整个段落包含针对不同事物的多个定义。这可能与类模板成员函数有关: 如果非重载函数的名称显示为可能评估的表达式或一组候选函数的成员,则如果非重载函数是纯虚函数,则如果通过重载解析从潜在评估的表达式中进行引用而选择了非重载函数,则该名称不会被使用函数及其名称未明确限定。 但是我不明白,该规则如何在多个编译单元中起作用?如果显式实例化类模板,是否会实例化所有成员函数?

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.