问题标签 [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 回答
124 浏览

c++ - 如果我没有返回未知类型的东西,我应该返回什么

对于以下代码,如果我没有要返回的内容,我应该返回什么?目前,我做了类似 T() 的事情,但我不确定它是否正确和正确。

0 投票
2 回答
193 浏览

c++ - 如果 T 是模板参数,语句 T::x(y) 是如何模棱两可的?

我正在阅读此网址上的情况说明书

http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8a.doc%2Flanguage%2Fref%2Fkeyword_typename.htm

我意识到我不知道 T::x 可以代表什么类型。这是摘录

语句 T::x(y) 是模棱两可的。它可以是对带有非局部参数 y 的函数 x() 的调用,或者它可以是类型为 T::x 的变量 y 的声明。C++ 会将此语句解释为函数调用。为了让编译器将此语句解释为声明,您需要将关键字 typename 添加到它的开头。语句 A::C d; 格式不正确。类 A 也引用 A,因此依赖于模板参数。您必须将关键字 typename 添加到此声明的开头:

我想了解 T::x 类型的变量 y 是如何工作的,这可能意味着什么?x 会是什么?

谢谢 :-)

0 投票
2 回答
99560 浏览

c++ - 类中的静态模板函数

如何在类中创建以下函数,然后从 main 访问该函数?我的类只是一堆静态函数的集合。

0 投票
2 回答
333 浏览

c++ - C++ 中的 typedef 变量

我想问一下 C++ 中的 typedef 变量

好的,现在我正在使用 PCL,我想将代码分成 .h 和 .cpp

这是我的 .h 文件

然后在其他 .cpp 文件上定义 getLatestCloud()

然后我收到 C4430 错误,因为它无法识别返回类型 CloudConstPtr

对不起这个愚蠢的问题:D

0 投票
1 回答
340 浏览

c++ - 在不需要时使用“模板”和“类型名称”消歧器

这个问题涵盖了在 C++ 模板代码中何时以及为什么需要typename和消歧器。template

在 C++03 中不需要它们的情况下使用这些消歧器是否有效?在 C++11 中怎么样?

0 投票
1 回答
306 浏览

c++ - 打印实例化链

我正在使用 STL C++0x 容器调试一些 C++ 解析器(工具链是 GCC 4.7.0)。

而且由于 STL 重新绑定代码很难理解,我需要以某种方式打印 typedef 之类的完整实例化链std::vector<T>::reference。当然,它只解析为T&,但在它通过至少 7 个不同的模板__gnu_cxx和其他内部结构之前。

所以我期待在模板错误的情况下打印什么,但是对于编译器实例化的每个类。可能吗?GCC 插件,也许...

UPD:嗯,我已经手动实例化了所有需要的模板。似乎没有自动执行此操作的好方法,除了将一些调试 printf 语句插入 GCC 代码本身。

0 投票
1 回答
1028 浏览

iterator - 使用相同类型的迭代器时“不匹配 operator=”

我收到一条非常长的错误消息。我环顾四周,这意味着我的迭代器与它正在迭代的列表的类型不同,但对我来说它看起来一样!

map1.h:83:31: 错误: 'pos = ((const Map, std::basic_string >*)this)->Map, std::basic_string >::pairList.std 中的 'operator=' 不匹配: :list<_Tp, _Alloc>:: 以 _Tp = Pair, std::basic_string >, _Alloc = std::allocator, std::basic_string >>, std::list<_Tp, _Alloc>::const_iterator = std: :_List_const_iterator, std::basic_string >>' /usr/lib/gcc/i686-pc-cygwin/4.5.3/include/c++/bits/stl_list.h:114:5:注意:候选者是:std::_List_iterator , std::basic_string > >& std::_List_iterator, std::basic_string > >::operator=(const std::_List_iterator, std::basic_string > >&)

0 投票
1 回答
165 浏览

gcc - sfinae for g++ 4.1.2

我对使用 G++ 4.1.2 的 SFINAE 有疑问。

以下代码适用于 4.6:

自然地,输出是:

我需要类似的东西才能在 g++ 4.1.2 上工作,有什么想法吗?坦率地说,我不明白这两个编译器之间怎么会有这么大的区别!

或者,如果您有替代方案,那就太好了。有模板的东西!或者宏...

0 投票
1 回答
121 浏览

c++ - 列表::iterator 无法正常工作

我正在用 C++ 创建一个模板类,并在std::list其中使用。出于某种原因,我的编译器不喜欢我尝试为列表声明和构造迭代器的方式。

在我的 HashTable.h 文件中,我有:

它给了我HashTable.h:77: error: expected ';' before "iter"一个错误信息。

迭代器的正确语法是什么?

或者是对的,我需要为我打算在我的 HashTable 模板中使用的每个类创建一个迭代器类?如果是这样,那就糟透了……

0 投票
1 回答
1345 浏览

c++ - 使用 std::remove_pointer 之类的操作在模板中构建派生类型

所以当我有这样的代码时:

即使该类型Foo来自左侧字段,它也可以作为返回类型仅通过给定内容的“加法”模式产生:

但是,如果情况看起来像这样:

它需要某种方法将指针从类型中拉出。我四处挖掘并找到了std::remove_pointer,但是一个天真的应用程序给出了“类型/值不匹配”:

我实际上没想到它会起作用......但我把它放在这里是为了表达我正在寻找的意图!

叹。每次我踏入任何带有模板和特征的新领域时,我都会觉得自己是那些“我不知道自己在做什么”的模因动物之一。:-/