问题标签 [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.

0 投票
1 回答
211 浏览

c++ - 没有匹配的函数调用奇怪的错误

我在其中传递整数数组 x 和 y 的构造函数给了我以下错误。
错误:对“(向量)(int [4])”的调用不匹配。
错误:对(向量)(int [4])的调用不匹配。将数组分配给指针存在一些问题。
任何人都可以更正我的代码。

0 投票
1 回答
21 浏览

c++ - 链接错误与非法调用

我在“main.cpp”中编写了上面的代码,并为该代码制作了一个头文件,写在下面。

但我收到以下错误消息:

C2352: 'class::function' : 非法调用非静态成员函数。

有什么问题?

0 投票
3 回答
1048 浏览

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有两种不同的实现方式?
0 投票
1 回答
260 浏览

c++ - 限制指针类型模板参数和覆盖模板基类的虚拟方法

我相信以下内容应该编译和链接,但不是:

编译器输出:

如果我在两个地方都删除了__restrict__限定符,它会编译和链接。我究竟做错了什么?

笔记:

  • 这是关于限制限定符和模板的唯一问题(截至撰写本文时)。有趣,不是吗?
  • 我将 GCC 4.9.3 与--std=c++11.
0 投票
2 回答
1100 浏览

c++ - 模板类的模棱两可的多重继承

我有一个真实的情况,可以在以下示例中进行总结:

B为什么对于a的编译器来说并不明显TimeListener,因此唯一可能的重载决议是Notifier< TimeListener >::add_listener( TimeListener& )

0 投票
1 回答
1222 浏览

c++ - c ++在类中存储函子

我创建了以下事件类:

事件.h

事件.cpp

现在我使用以下代码对其进行了测试,并且可以正常工作:

但最后,我想将它与这样的仿函数一起使用:

但现在我在 Event.h 文件中得到一个错误:

0 投票
0 回答
22 浏览

c++ - c++模板类的调用方法

我创建了一个模板类并对其进行了初始化。现在我想从这个类中调用一个方法,但我得到一个编译器错误。

(使用该函数TemporaryFunctionForSimulator,我成功地将模板类拆分为 *.h 和 *.cpp。所以这不是问题!)

错误:在“模拟器”中请求成员“addEvent”,它是非类类型“模拟器*()”</p>

模拟器.h

模拟器.cpp

主文件

0 投票
1 回答
1471 浏览

c++ - c ++模板类中的运算符重载

我开发了一个模板类。现在我想重载低于运算符。我正常尝试过,就像普通班级一样,但它不起作用。

事件.h

事件.cpp

主文件

程序打印“event1 is lowert”。但是如果我的重载函数可以工作,“event2 会更大”(我将 event1 中的时间 5 与 event 2 中的时间 4 进行比较)

0 投票
0 回答
89 浏览

c++ - c++模板类成员特化和继承

我想写下一组类,其中有:

  • 一个纯虚拟类,它包装了任何类型的对象及其相关的 getter。
  • 为我需要的每种对象提供一个或多个类,扩展虚拟对象并覆盖 getter 以使其专业化。

包装器的模板类解决​​方案似乎适合这种情况,但我必须在两种不同的情况下使用它:

  • 第一个不知道包装器的实现。Wrapper<AnyObj> var;在这种情况下,我应该声明 aAnyObj代表任何类名(如?在 Java 中)。据我所知,你不能在 C++ 中做到这一点。
  • 第二个仅限于特定的包装器实现。在这种情况下,我需要 getter 返回具有确切类型的包装对象(而不是向下转换)。

如果我是对的,我不能使用模板类,而且,包装器不会有protected: T* wrappedObject成员。

我不知道我是否被困在 Java 方法中,从一开始就错误地思考,或者错过了什么。

任何建议表示赞赏。

0 投票
1 回答
614 浏览

c++ - 如何动态转换模板类

我正在尝试围绕以下类模板编写 API:

作为这个 API 的一部分,我希望实现者能够在不同类型的MyClass. 为了实现这一点,我编写了以下函数:

这段代码编译没有错误。


我的问题:
假设C operator C (A)D operator D (B)都是为上述函数的任何给定实现定义的,这个看起来很疯狂的函数是否足以让实现者在MyClass, (via (MyClass<C, D>)MyClass<A, B>) 类型之间动态转换,还是我完全失去了它?



示例实现: