|
|
1
5
这也编译并揭示了VC++混淆的根源——分配器类型。显然,在类外,vs选择不同的默认值。或者它可能无法识别它们是相同的。 在VS2008(按原样)和VS2003(空间介于>>)上编译
GCC 3.4想要这个->begin()和空格,但是它可以编译代码而不需要显式的分配器类型…看起来微软编译器并没有它应有的聪明… |
|
|
2
2
问题不在于typedef,而在于typename。
每当编译器遇到依赖于模板的名称时(基本上,任何使用
当你添加
在typedef示例中,typedef声明中仍有typename,但一旦声明typedef,它就不是依赖名称。这只是一种类型,所以
基本上,编译器不能确定
但它知道
|
|
|
3
1
typename是这里最重要的关键字。 重要的是要注意:
它们之间应该有一个空格,以免混淆编译器,使其认为您正在使用
如果没有完整的代码,我不知道为什么在使用typename之后会有问题。也许在类定义之外的定义中不需要它? 此外,最好是:
而不是
顺便说一句,从STL类派生不是一个好主意,除非您非常非常小心。 STL类没有虚拟析构函数。 |
|
|
4
0
对我来说好像很好 如果 我做了以下更改-
我基本上改变了
|
|
|
5
0
另一个有趣的地方:如果不使用
请注意,这似乎只关系到定义,而不是声明。我也很感兴趣的是,如果有一个
我真的不知道该怎么办。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |