问题标签 [template-classes]
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++ - 没有匹配的函数调用奇怪的错误
我在其中传递整数数组 x 和 y 的构造函数给了我以下错误。
错误:对“(向量)(int [4])”的调用不匹配。
错误:对(向量)(int [4])的调用不匹配。将数组分配给指针存在一些问题。
任何人都可以更正我的代码。
c++ - 链接错误与非法调用
我在“main.cpp”中编写了上面的代码,并为该代码制作了一个头文件,写在下面。
但我收到以下错误消息:
C2352: 'class::function' : 非法调用非静态成员函数。
有什么问题?
c++ - 来自引用包装器的 const 引用包装器
考虑以下参考包装器:
我想知道:
- 如何仅通过模板别名声明 const 引用包装器
template <class T> using const_wrapper = /* const wrapper<T> or wrapper<const T>?*/
- 如果在这种状态下不可能,如何更改包装器结构以使前面的点成为可能?
- 如何解决以下问题:
int i = 42; wrapper<const char> w(i);
会编译但不工作(我想阻塞构造函数) - 对于什么具体问题,
iterator
一般const_iterator
有两种不同的实现方式?
c++ - 限制指针类型模板参数和覆盖模板基类的虚拟方法
我相信以下内容应该编译和链接,但不是:
编译器输出:
如果我在两个地方都删除了__restrict__
限定符,它会编译和链接。我究竟做错了什么?
笔记:
- 这是关于限制限定符和模板的唯一问题(截至撰写本文时)。有趣,不是吗?
- 我将 GCC 4.9.3 与
--std=c++11
.
c++ - 模板类的模棱两可的多重继承
我有一个真实的情况,可以在以下示例中进行总结:
B
为什么对于a的编译器来说并不明显TimeListener
,因此唯一可能的重载决议是Notifier< TimeListener >::add_listener( TimeListener& )
?
c++ - c ++在类中存储函子
我创建了以下事件类:
事件.h
事件.cpp
现在我使用以下代码对其进行了测试,并且可以正常工作:
但最后,我想将它与这样的仿函数一起使用:
但现在我在 Event.h 文件中得到一个错误:
c++ - c++模板类的调用方法
我创建了一个模板类并对其进行了初始化。现在我想从这个类中调用一个方法,但我得到一个编译器错误。
(使用该函数TemporaryFunctionForSimulator
,我成功地将模板类拆分为 *.h 和 *.cpp。所以这不是问题!)
错误:在“模拟器”中请求成员“addEvent”,它是非类类型“模拟器*()”</p>
模拟器.h
模拟器.cpp
主文件
c++ - c ++模板类中的运算符重载
我开发了一个模板类。现在我想重载低于运算符。我正常尝试过,就像普通班级一样,但它不起作用。
事件.h
事件.cpp
主文件
程序打印“event1 is lowert”。但是如果我的重载函数可以工作,“event2 会更大”(我将 event1 中的时间 5 与 event 2 中的时间 4 进行比较)
c++ - c++模板类成员特化和继承
我想写下一组类,其中有:
- 一个纯虚拟类,它包装了任何类型的对象及其相关的 getter。
- 为我需要的每种对象提供一个或多个类,扩展虚拟对象并覆盖 getter 以使其专业化。
包装器的模板类解决方案似乎适合这种情况,但我必须在两种不同的情况下使用它:
- 第一个不知道包装器的实现。
Wrapper<AnyObj> var;
在这种情况下,我应该声明 aAnyObj
代表任何类名(如?
在 Java 中)。据我所知,你不能在 C++ 中做到这一点。 - 第二个仅限于特定的包装器实现。在这种情况下,我需要 getter 返回具有确切类型的包装对象(而不是向下转换)。
如果我是对的,我不能使用模板类,而且,包装器不会有protected: T* wrappedObject
成员。
我不知道我是否被困在 Java 方法中,从一开始就错误地思考,或者错过了什么。
任何建议表示赞赏。
c++ - 如何动态转换模板类
我正在尝试围绕以下类模板编写 API:
作为这个 API 的一部分,我希望实现者能够在不同类型的MyClass
. 为了实现这一点,我编写了以下函数:
这段代码编译没有错误。
我的问题:
假设C operator C (A)
和D operator D (B)
都是为上述函数的任何给定实现定义的,这个看起来很疯狂的函数是否足以让实现者在MyClass
, (via (MyClass<C, D>)MyClass<A, B>
) 类型之间动态转换,还是我完全失去了它?
示例实现: