【发布时间】:2016-09-04 17:42:35
【问题描述】:
正如[5.3.3/3] 所述(expr.sizeof,工作草案):
sizeof 运算符可以应用于指向函数的指针,但不能直接应用于函数。
以下最小的工作示例编译良好:
void f() { }
int main() {
sizeof(&f);
}
我希望下面的那个也可以工作:
template<typename T>
void f() { }
int main() {
sizeof(&f<int>);
}
无论如何,即使它使用 clang (v3.8) 编译,它也不使用 GCC (v6.1)。
错误是:
错误:没有上下文类型信息的重载函数地址
我怀疑这是 GCC 的错误(如果确认,我会开票)。
我是对的还是我在这里遗漏了一些东西,而 GCC 确实是对的?
同时,我向 GCC 开放了an issue。
【问题讨论】:
-
这是一个错误。3210
-
@Columbo 是 3210 的错误参考还是诺基亚手机的 amarcord 提及? :-)
-
我对荒谬的最小评论长度感到恼火。 ;D
-
@Columbo Ahahah... Touché。确实是最好的理由!!对不起这个愚蠢的问题,这太明显了。 ;-)
-
@DanielJour 我刚刚报告了它...没有找到错误,但我不是最好的 bugzilla 搜索引擎。
标签: c++ templates gcc clang language-lawyer