问题标签 [class-template]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 为什么在 operator< 存在时定义 lt?
一段向量操作的代码包含这些类模板定义:
但为什么?它没有使用额外的异常处理,它依赖于T
已经具有operator<
和的类的对象operator>
。使用运算符不是一样容易/更容易吗?还是应该使用模板类进行比较?
c++ - C++ 类模板继承调用构造函数/析构函数
我有以下课程。
并在 cpp 文件中
然后我有一个类:
带有cpp文件
从这里我收到错误消息:
Actors::DivideConquerTask<int>::~DivideConquerTask()
undefined reference to
对Actors::DivideConquerTask::DivideConquerTask(int, int)的未定义引用
其中 Actors 是在其中声明/定义所有内容的命名空间。
这里有什么问题?为什么它找不到我的基本构造函数/析构函数?
注意:我省略了一些可以正常工作的琐碎功能。
c++ - 模板类中 boost::unordered_map 中 boost::tuple 的问题
我编写了一种方法,可以在 C++ 中自动插入昂贵的 2D 函数。我现在试图让类接受一个函数指针,以便可以插入任何函数。为此,我似乎需要一个模板类,以便我可以为每个需要评估函数指针的对象模板化它。在我意识到我需要在头文件中完全定义类之后,这部分并不是那么糟糕,以便链接器可以为每个需要的对象模板化类。现在擦。
在类中,我使用 boost::unordered_map 来存储函数评估,这样我就不会不必要地调用该函数。在插值过程中,我细化了一个网格,以便它充分描述它(基于它的曲率)。我在局部细分网格,因此如果我的原始点位于 x=0, .5, 1,下一组可能是 x=0, .25, .5, 1,我只需要在x = .25 第二次通过。这是使用硬编码函数自行工作,而不是动态函数指针。
我遇到的麻烦是为 boost::tuple 定义必要的运算符和 hash_value 函数。如果我把它放在标题中,它们会被定义多次(对于标题的每个包含)。如果我尝试将其编译为对象并将其链接到其中,则链接器无法找到定义。我需要在课堂上引用的两个定义:
在我的标题中,我有一个结构和 typedef:
就在我的模板类之上,带有 ommitions:
如何使 operator== 和 hash_value 方法对类可用,而无需多次定义它们?我守着头文件。我是一个 c++ 新手,所以希望它是我没有得到的简单的东西。谢谢!
c++ - 结构后的尖括号
我在理解 C++ 代码中的以下行时遇到问题:
struct strVar 后面的尖括号是什么意思?我以前从未听说过这种风格。
该行没有用我的编译器编译,但它来自一个正在运行的软件,所以它在某种意义上一定是正确的。
c++ - 如果不使用静态成员,是否在模板类中初始化静态成员变量?
如果不使用静态成员,是否在模板类中初始化静态成员变量?我用它来注册类型。
我找到了一种方法来测试它。它打印 1 而不是 2。 regist() 不被称为 abd 静态成员未初始化。我的测试是在 VC110 编译器上进行的。而且我也在网上测试
c++ - SFINAE 中使用的别名模板导致硬错误
我想enable_if
在另一个类模板中使用在一个类模板中定义的启用程序(的别名模板)。它看起来像这样:
这适用于 SFINAE。但是当我在第二类中添加另一个别名模板时
并将此启用程序用于 SFINAE,替换(正确)失败但对于 g++4.8.0 和 4.8.1 出现硬错误。clang++3.4 只给出一个软错误并且 SFINAE 有效。
与#if 1
产生:
但是对于using X = B< T >;
在 g+4.8.0 上生成错误:
如何将启动器从一个类模板“导出/导入”到另一个?
为什么 SFINAE 不起作用?
c++ - 类模板中不同上下文中启用程序的不同行为
为什么行为如此不同?#if 1
版本成功(这很奇怪)编译并产生预期的输出到stdout,但版本#if 0
没有:
这会产生一个错误(根据我对这两种情况的期望(实际上),本质上“B”是私有的):
g++ -v
输出包含以下行:
我希望B
除X
.
该问题仅在类模板中异常发生,而对于纯类则没有(这里我们有两个相同的问题,因为两个变体都不必编译,但它们都已编译)。
c++ - 从函数指针作为模板参数的类型推导
我是模板新手,在使用它们时遇到了一些问题。我在下面发布了我无法编码的代码。在如何做这件作品方面需要帮助
我需要将函数指针作为模板参数传递给测试器类,并将 TClass 实例作为参数传递给构造函数。在构造函数中,函数指针将用于将 testFunc 绑定到测试器类的成员变量,该成员变量是函数指针。然后,当测试器类被销毁时,将调用 testFunc。无法解决模板的类型扣除
c++ - 继承到子类时可以指定类模板的类型吗?
说,我有一个父类模板。并想在其上建立几个子类。每个子类都是特定于类型名的。那么我可以指定他们在继承父类模板时使用的类型名吗?
类定义示例:
这段代码正确吗?