问题标签 [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.
visual-studio - 如何优雅地将模板参数限制为`>`?
如何优雅 Wrapper
地限制模板参数?Wrapper<Any,
MyArray
<AnyT>>
- 不要破坏内容辅助 (Visual Studio)。
- 高可读性。不要使用 hacky 方法。
由于某些原因,大多数解决方案都喜欢破解。 - 使用 C++ 语法规则在第一行使其显而易见。(不仅仅是绿色评论)
据我所知,有很多解决方案,但每个解决方案都不符合标准。
解决方法 1(模板专业化,失败 1)
此代码是从https://stackoverflow.com/a/43518221 (@max66) 修改的。
IDE 的上下文线索/语法高亮会混淆。
就我而言,它将一些正确的类型标记为错误,例如:-
解决方法 2(一些 hacky 字段/typedef,失败 2)
这个想法来自https://stackoverflow.com/a/43518295 (@Jarod42)中的评论
类声明没有提到MyArray
,它只是使用一种 hacky(可读性较差)方式 ( MyArrayT
) 来强制执行T2
is MyArray
。
解决方法 3(基类,失败 2)
代码从Restrict C++ Template Parameter 修改为 Subclass和仅接受某些类型的 C++ 模板。
它与解决方法2具有相同的缺点。
对于普通用户来说并不明显。
解决方法 4(SNIFAE,失败 1)
通过添加std::enable_if
模板类声明 ( Wrapper
),我可以获得有效的 hack。
不幸的是,内容辅助讨厌它。
参考
这是我阅读的其他链接:-
- http://www.informit.com/articles/article.aspx?p=376878(模板模板参数)
- 限制模板函数,只允许某些类型(与模板类型无关作为参数)
c++ - 在成员数据中使用模板参数的模板类的基类指针
对于以下模板类
我希望能够拥有一个基类指针向量,我知道我需要使用一个接口类,但我无法让它工作,任何建议将不胜感激。
java - 模板类给出原始数据类型错误
给出“不能从静态上下文引用的非静态变量”
这是模板类的以下代码
我尝试为 double 创建一个新课程,但错误仍然存在
c++ - 循环使用 set Template Class 将所有 26 个字母添加到 s
我正在准备下周的考试,我在书中遇到了一个我无法上班的问题。说假设set<char> s;
现在声明了一个循环来将所有 26 个字母插入到 s 中。
我所拥有的是
与此类似的东西适用于我相信的数组,但不适用于这个模板类。我知道我不必插入每个字母,我只是不知道如何遍历字母表。
c++ - 在我的模板类示例中,即使我没有定义添加方法,它也会添加“分段错误(核心转储)”错误
!!注意:我在回答后多次编辑了问题。但是下面的问题是第一个问题,第一个答案是一个有用的答案。请不要被一些评论混淆。它们是在我多次更改问题后写的。
我有一个 Shop 模板类和 Cookie 类。Shop 是一个保存名为 cookieShop 的 cookie 的列表。Shop cotr 可以接受一个cookie 作为参数,可以通过Shop 模板类的Add 方法添加更多。
我正在创建两个 cookie。一是通过 shop cotr 添加,二是通过 add 方法。即使我不在 add 方法中编写代码,第二个 cookie 也会添加到购物清单中。我试图理解它为什么这样做,但不能。
这是我的代码:
//商店.h
//Cookie.h
//Cookie.cpp
//main.cpp
如您所见,添加方法中的代码已被注释。它如何添加第二个cookie?
当编译 (gcc main.cpp Cookie.cpp) 并运行它 (./a.out) 时,它会给出以下行:
- 巧克力曲奇 50 180
- Cake Mix Cookie 60 200 Segmentation fault (core dumped) 为什么我得到 Segmentation fault 错误?
注意:我是 stackoverflow 的新手。如果我有错误的行为。请告诉:)
c++ - 在我的模板类示例中,出现“分段错误(核心转储)”错误
在我的代码中,我想创建一个 cookie 并将其添加到商店,方法是将 cookie 作为参数发送到 shop 构造函数。它添加了 cookie,但给出了分段错误错误。
我得到结果:
- Chocolate Cookie 50 180
分段错误(核心转储)!
我找不到我错的代码部分。你能帮我吗?
主.cpp:
商店.h:
饼干.h:
Cookie.cpp:
c++ - C++ 你能做一个模板类的迭代器吗?
我正在开发一个类项目,为此我们必须创建一个从向量派生的模板类,然后能够从中添加和删除元素。
我想我会创建一个类的迭代器,因为它是一个向量,我认为我应该能够使用“this”并创建迭代器,但“this”是一个指针,所以它不起作用。
如果我尝试这个:vector<T>::iterator p;
我得到很多错误,所以我什至可以这样做还是只需要找到不同的解决方案?
c++ - 专门化一个模板类?
我正在尝试编写一个在没有循环或递归函数调用的情况下输出 1 到 1000 的程序,我想出了这个
问题是,我无法停止链式调用(NumberGenerator<1>
仍然尝试调用NumberGenerator<0>
并无限下溢)。我怎样才能让链条停在1?
c++ - 指向数组的指针的 C++ 模板类动态数组
我正在用 C++ 制作一个模板化的矩阵类。为了创建这个类,我创建了一个指针数组,这些指针指向动态数组。
到目前为止,我有:
我还想创建一些函数来操纵这个结构。我见过很多类似的代码,但我没有看到它是如何创建一个包含指向其他数组的指针的数组。这个概念让我感到困惑,我只想有人向我澄清我应该如何做我想做的事。
我希望类被隔离,并且与输入没有任何关系。它可能会在其他代码中被调用并使用我的函数来创建矩阵结构。创建一个指针数组对我来说并不是令人困惑的部分,它使这些指针指向其他数组,并且指针数组的大小根据有多少输入条目而增加。
c++ - C++ 使用类模板创建了多个结构
我想创建基本相同但具有不同类型的类型安全结构,因此它们需要不同的函数签名。
如果我起诉班级的模板
如何使函数类型安全并为类型 A 的结构 X 和类型 B 的结构 X 定义不同的函数签名?