问题标签 [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.
c++ - 如果我没有返回未知类型的东西,我应该返回什么
对于以下代码,如果我没有要返回的内容,我应该返回什么?目前,我做了类似 T() 的事情,但我不确定它是否正确和正确。
c++ - 如果 T 是模板参数,语句 T::x(y) 是如何模棱两可的?
我正在阅读此网址上的情况说明书
我意识到我不知道 T::x 可以代表什么类型。这是摘录
语句 T::x(y) 是模棱两可的。它可以是对带有非局部参数 y 的函数 x() 的调用,或者它可以是类型为 T::x 的变量 y 的声明。C++ 会将此语句解释为函数调用。为了让编译器将此语句解释为声明,您需要将关键字 typename 添加到它的开头。语句 A::C d; 格式不正确。类 A 也引用 A,因此依赖于模板参数。您必须将关键字 typename 添加到此声明的开头:
我想了解 T::x 类型的变量 y 是如何工作的,这可能意味着什么?x 会是什么?
谢谢 :-)
c++ - 类中的静态模板函数
如何在类中创建以下函数,然后从 main 访问该函数?我的类只是一堆静态函数的集合。
c++ - C++ 中的 typedef 变量
我想问一下 C++ 中的 typedef 变量
好的,现在我正在使用 PCL,我想将代码分成 .h 和 .cpp
这是我的 .h 文件
然后在其他 .cpp 文件上定义 getLatestCloud()
然后我收到 C4430 错误,因为它无法识别返回类型 CloudConstPtr
对不起这个愚蠢的问题:D
c++ - 在不需要时使用“模板”和“类型名称”消歧器
这个问题涵盖了在 C++ 模板代码中何时以及为什么需要typename
和消歧器。template
在 C++03 中不需要它们的情况下使用这些消歧器是否有效?在 C++11 中怎么样?
c++ - 打印实例化链
我正在使用 STL C++0x 容器调试一些 C++ 解析器(工具链是 GCC 4.7.0)。
而且由于 STL 重新绑定代码很难理解,我需要以某种方式打印 typedef 之类的完整实例化链std::vector<T>::reference
。当然,它只解析为T&
,但在它通过至少 7 个不同的模板__gnu_cxx
和其他内部结构之前。
所以我期待在模板错误的情况下打印什么,但是对于编译器实例化的每个类。可能吗?GCC 插件,也许...
UPD:嗯,我已经手动实例化了所有需要的模板。似乎没有自动执行此操作的好方法,除了将一些调试 printf 语句插入 GCC 代码本身。
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 > >&)
gcc - sfinae for g++ 4.1.2
我对使用 G++ 4.1.2 的 SFINAE 有疑问。
以下代码适用于 4.6:
自然地,输出是:
我需要类似的东西才能在 g++ 4.1.2 上工作,有什么想法吗?坦率地说,我不明白这两个编译器之间怎么会有这么大的区别!
或者,如果您有替代方案,那就太好了。有模板的东西!或者宏...
c++ - 列表::iterator 无法正常工作
我正在用 C++ 创建一个模板类,并在std::list
其中使用。出于某种原因,我的编译器不喜欢我尝试为列表声明和构造迭代器的方式。
在我的 HashTable.h 文件中,我有:
它给了我HashTable.h:77: error: expected ';' before "iter"
一个错误信息。
迭代器的正确语法是什么?
或者是对的,我需要为我打算在我的 HashTable 模板中使用的每个类创建一个迭代器类?如果是这样,那就糟透了……
c++ - 使用 std::remove_pointer 之类的操作在模板中构建派生类型
所以当我有这样的代码时:
即使该类型Foo
来自左侧字段,它也可以作为返回类型仅通过给定内容的“加法”模式产生:
但是,如果情况看起来像这样:
它需要某种方法将指针从类型中拉出。我四处挖掘并找到了std::remove_pointer,但是一个天真的应用程序给出了“类型/值不匹配”:
我实际上没想到它会起作用......但我把它放在这里是为了表达我正在寻找的意图!
叹。每次我踏入任何带有模板和特征的新领域时,我都会觉得自己是那些“我不知道自己在做什么”的模因动物之一。:-/