问题标签 [typename]

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 回答
531 浏览

c++ - dev-c++ g++ - error: typename/static constant undeclared (首先使用这个函数)

我不断收到有关 typename posizione 和 int 常量 POSIZIONENULLA 的以下错误。奇怪的是,我在我的代码中使用了类型 posizione,但只在函数中得到错误。

我正在使用带有 g++ 的 dev-c++ 4.9.9.2

我已经上传了整个源代码@http: //ge.tt/9I0pXcS/v/0 ?c供您编译。对于编译,您可以使用文件夹“Coda”中的 make 文件或在编译器文件夹中启动以下命令。

g++ -g -c Coda.h -o Coda.o ar crf Coda.a Coda.o

我真的可以帮到你。非常感谢您抽出宝贵的时间。谢谢。

0 投票
2 回答
496 浏览

c++ - typedef 用于合格的依赖类型

我读了这篇关于如何使用 C++ 中的 typename 关键字的精彩摘要:http: //pages.cs.wisc.edu/~driscoll/typename.html

我仍然想知道一个特定的例子:

从上面链接的文字中,我了解到我需要

因为 Inner1 既是合格的又是从属的。

但是:Inner2 还需要一个让我感到困惑的类型名:首先,似乎很清楚 Inner2 是一种类型(嗯,这对于 Inner1 来说已经很清楚了)。其次,Inner2 完全不依赖于 T。对于所有可能的 T,Inner2 将是相同的(类型)!

使用模板内部的限定类型后是否需要 typedef?是否取决于模板参数?

0 投票
1 回答
553 浏览

c++ - 以类名为键的映射

是否可以以某种方式使用类名作为容器中的键?

我想存储从同一基础继承的类的对象。

我有一个嵌套地图。...应该填充特定的类名,例如类型storagetransformstorageform字符串等。

我想访问容器的对象,如下所示。

这可能以某种方式吗?此外,有没有更好的方法来解决这个问题?

0 投票
1 回答
365 浏览

c++ - C++ - 使用有什么意义吗代替

可能重复:
模板中关键字“typename”和“class”的 C++ 差异

使用是否有任何要点/优势:

相对于:

在 C++ 中?

0 投票
1 回答
257 浏览

c++ - 调用模板函数,该函数将模板指针指向函数

我的问题是我尝试调用我的模板函数测试,它需要指向另一个模板函数的指针。因为你不能有指向函数的模板化指针,所以我通过在 struct 中包装这样的 typedef 指针来做到这一点(请参阅Template typedefs - What's your work around?)。没关系 - 我可以通过指针调用我的模板函数,但问题是我不能调用以这个指针作为参数的函数。VS2010中的错误是:

c:\projects\sort\sort\sort.cpp(114): 错误 C2059: 语法错误: '}' c:\projects\sort\sort\sort.cpp(124) : 请参阅函数模板实例化 'void test (void (__cdecl *)(std::vector<_Ty> &))' 使用 [ _Ty=int ] 编译

构建失败。

_Ty 是 int,没关系,对吧?

0 投票
2 回答
61 浏览

c++ - 模板可能导致函数定义匹配失败

在使用c++11的VS2012中,为什么会这样编译:

但这不会:

第二个导致错误:“无法将函数定义与现有声明匹配”
我意识到我不必为后面的模板函数定义使用 G,我只是使用它来与第二个示例声明保持一致。
您是否不允许在模板类中拥有与该类不同类型的函数?我非常有兴趣找出这里发生的事情以及我可以从这个错误中学到的与模板相关的任何内容。

0 投票
1 回答
113 浏览

c++ - 如何使模板中的纯虚方法适应从它继承的类?

假设我有这个示例模板:

然后我继承它:

  1. 这是正确的方法吗?当我这样写它时,它不会给我任何智能感知错误,但是一旦我在某处写 ReturnPtr(),它就会告诉我“对象具有与成员函数不兼容的类型限定符”。
  2. 这是否意味着不可能使用这样的虚拟方法?
0 投票
0 回答
55 浏览

c++ - 迭代器创建中的 typename 和 typedef

我有这个代码:

迭代器声明中的 typename 有什么作用?我知道 typedef 是在说“我有一个列表迭代器,我想称之为'iterator'。但是 typename 的目的是什么?仅仅是因为我的列表可以存储我需要的任何 typename T 吗?是为了什么别的?

谢谢,

汤姆

编辑:是不是因为列表迭代器是一个合格的依赖类型,所以我需要 typename 在它之前?或者,更正确地说,我正在定义的 typedef,基于 std::list::iterator 类型的“迭代器”是一个合格的依赖类型,因为它是一个合格的依赖列表的迭代器?

0 投票
2 回答
103116 浏览

c++ - Argument list for class template is missing

I'm having a curious issue, and I'm not quite sure what the issue is. I'm creating a class called LinkedArrayList that uses a typename template, as shown in the code below:

Now, this doesn't give any errors or problems. However, creating the functions in the .cpp file gives me the error "Argument list for class template 'LinkedArrayList' is missing." It also says that ItemType is undefined. Here is the code, very simple, in the .cpp:

It looks like it has something to do with the template, because if I comment it out and change the ItemTypes in the functions to ints, it doesn't give any errors. Also, if I just do all the code in the .h instead of having a separate .cpp, it works just fine as well.

Any help on the source of the problem would be greatly appreciated.

Thanks.

0 投票
2 回答
369 浏览

c++ - C++ 类迭代器实用程序:定义和用法

我有一个名为 的类A,在这个类中我有一个可迭代的容器,我通过遵循一些访问规则进行迭代——顺序、空虚和其他。

为了简化下面的示例,让我们考虑一下我只是在遍历容器,但这不能使用内置容器的 iterator来完成。

一切都非常好——而且看起来很整洁——除了,当我声明我的迭代器时,我必须使用typename——我几乎假设它是用来告诉编译器我拥有的是一个类型,而不是类实例本身。

问题:

  1. 为什么我必须使用typename

    /li>
  2. 迭代器通常如何定义,因为向量迭代器不需要typename标签?它是否与从类定义中声明向量而不是从向量本身有关?

    /li>
  3. 是否在容器类中定义了迭代器——我猜它被命名为组合——或者,如果没有,它是如何将迭代器添加到类的命名空间中的,例如:

    /li>