|
|
1
8
你能试试吗?
我没有访问GCCCatm的权限,但我也遇到了类似的问题,添加模板关键字总能解决这些问题。它也适用于vs。 |
|
|
2
11
只是为了提供一些背景
当编译器看到这个函数时,它不知道
1:
编译器看到
2。
三。
至于第一步,它现在知道从get-inner返回的必须是类类型,所以它知道下一个标识符是成员对象或函数。
4。
那么,什么可以
我们知道
在这种情况下,编译器不知道表达式的类型
那么,为什么要修复?
添加
实际上,我们告诉编译器
删除模板参数
当Do-Outer没有模板参数时,即:
|
|
|
3
-1
我不能自称是地球上10个完全理解C++模板的人之一,但是你在这里做的对我来说很好。(GCC 4.4.1失败,错误相同,btw)。
改变
与GCC一起工作,大概也将用Visual C++工作。 您可能会考虑向gcc提交一个bug;要么他们会修复它,要么它将作为无效代码关闭,在这个过程中,希望有人能解释为什么您所做的是无效代码。 进一步的更新和aha:结果发现它实际上不是有效的代码,gcc只是给出了一个可怕的错误消息。英特尔C++输出(实际上很有用!)错误信息:
这让我意识到了问题所在。将Do_Inner更改为
ICC和GCC都接受该规范。 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
MysteryMoose · GCC下故意忽略初始化器警告中的过量元素 1 年前 |
|
|
Ken P · 如何利用[*]printf格式类型规范警告? 1 年前 |
|
fghoussen · 在C结构体中,为什么打包、对齐似乎会进行填充? 2 年前 |
|
|
adversarr · 全局变量何时导出到可执行文件? 2 年前 |