templates相关内容
我有一个模板类在这样的头文件中定义。这里我定义了一个静态变量: #ifndef TEST1_H_ #define TEST1_H_ void f1(); static int count; template class MyClass { public: void f() { ++ count; } };
..
当我在模板类中写一个函数时,如何找到我的T是什么? 例如 template ostream&运算符这样的: 模板 struct TypeIsInt { s
..
我正在构建一些需要具有整数和/或双精度的特定函数的输入检查程序(例如'isPrime'应该只能用于整数)。 如果我使用 enable_if 作为参数,它可以正常工作: template 类检查 { public: template inline static U readVal(typename std :: enable_if
..
有时它不能工作: 模板 class MyClass { public: MyClass(T t){} }; void test(){ f(5); MyClass mc(5); f(5); MyClass mc(5); //这不工作 }
..
有一个大脑放屁...可以做这样的工作吗? template struct Foo { template struct Bar; }; template struct Foo :: Bar //尝试专门化Bar { }; 我不是有这样做, 建议赞赏! PS:我忘了提及明确专用于F
..
请考虑以下代码: struct A; // incomplete type template struct D {T d; }; template struct B {int * p = nullptr; }; int main(){ B u,v; u = v; //不编译抱怨D :: d具
..
我知道下面的代码是一个类的部分特化: template class MyClass { ... }; //部分特化:两个模板参数具有相同的类型 template class MyClass { ... }; 此外,我知道C ++不允许函数模板部分专门化但
..
我在C ++ 11中阅读了一些关于移动语义的描述,我想知道在什么上下文中可以使用它。 目前,许多C ++数学库使用模板元编程来延迟评估。 如果M = A + B + C * D,其中M,A,B, C和D是矩阵,模板元编程允许避免无用的副本。 是移动语义更方便的方式来做这些事吗? 如果不是,在什么语境中使用移动语义。 如果是,与模板元编程相比,这种用法有什么区别/限制? 解决
..
考虑下面的类,内部结构 Y 被用作类型,例如。在模板中,稍后: template class X { 模板 struct Y {}; template struct Y {}; }; 现在,这个例子显然不会编译,错误的第二个 X :: Y 已经被定义或者它具有太多的
..
下面的代码返回堆栈分配的数组的大小: template int siz(T(&)[size]) { return size; } 但我无法围绕语法。 特别是 T(&)[size] part ... 解决方案 但是我不能绕开语法。特别是 T(&)[size] part ... 该
..
C ++模板在我的日常工作中是一个祝福,因为它的力量。但是人们不能忽视由于大量使用模板(hello元编程和Boost库)而导致的(非常非常非常长的)编译时间。我已经阅读并尝试了很多可能性手动重组和修改模板代码,使其尽可能快的编译。 现在我想知道是否有任何c ++编译器,尽量减少解释模板类所需的时间。我可能是错的,但我觉得编译器我知道只有添加模板解释以前的版本。 我的问题是: c
..
我需要一个类型trait来检查参数包中的所有类型是否都是可复制的。这是我到目前为止做的。主要功能包含一些测试用例,以检查功能。 #include #include #include template struct areCopyConstructible; 模
..
C ++ 0x将允许模板获取任意数量的参数。 解决方案 Type-安全printf 在工厂方法中转发任意多个构造函数参数 / strong>基本类允许放置和删除有用的策略。 通过将异类类型对象 有一个文字运算符可以计算用户定义文字的值(例如“10110b”)。 范例3: typename ... T> struct flexible:T ... {flexible
..
有可能在C ++中将模板参数字符串化吗? 我试过这个: #define STRINGIFY(x)#x template struct Stringify { Stringify() { cout } }; int main() { Stringify s; } 但是我得到的是一个'T',而不是一个' 。
..
我刚刚困惑了如何在C ++中以通用的方式实现某些东西。 考虑这样的代码: void a(int){ // do something } void b(int){ // something else } void function1(){ a(123); a(456); } void function2(){ b(123); b(456); }
..
以下函数模板中的第二个括号的原因是什么: template(int i) href =“http://stackoverflow.com/questions/937107/do-template-specializations-require-template-syntax”> SO问题其中建议在后缺少括号,
..
当我在不同的目标文件中使用一个专门的模板时,我得到一个“多重定义”的错误。我发现的唯一解决方案涉及使用“内联”功能,但它只是似乎一些解决方法。如何在不使用“inline”关键字的情况下解决这个问题?如果不可能,为什么? 以下是示例代码: paulo @ aeris:〜/ teste / cpp / redef $ cat hello.h #ifndef TEMPLATE_H
..
刚刚我不得不通过网站找出为什么模板类模板成员函数给出语法错误: 模板类F00 { template酒吧(); }; ... Foo F; f.bar(); //语法错误这里 现在我意识到模板括号被当作关系运算符。为了做到目的,需要以下奇怪的语法,cf http://stackoverflow.com/
..
有什么方法在C + +定义一个类型,大到足以容纳最多一个特定的数字,可能使用一些聪明的模板代码。例如我想能够写: - Integer :: type dataItem; 并且该类型是否解析为足够容纳指定值的最小类型? p> 背景:我需要使用外部数据文件中的脚本生成一些变量定义。我想我可以让脚本看看这些值,然后使用 uint8_t , uint16
..
我必须处理一个由许多模板类组成的库,这些类当然都在头文件中实现。现在我试图找到一种方法来减少无法忍受的长的编译时间,因为我几乎必须包括整个库在每个和我的编译单元。 使用转发声明一个可能性,尽管模板?我试着沿着下面的例子,我尝试绕过 #include ,作为一个例子,但它给我一个链接器错误,因为 push_back 未定义。 #include
..