以下代码可以顺利编译,但我不确定原因。可以有人解释一下为什么这是合法的吗?
我正在使用g++ (Debian 6.1.1-10) 6.1.1 20160724进行编译。
我正在使用g++ (Debian 6.1.1-10) 6.1.1 20160724进行编译。
#include <iostream>
int sum(int x, int y) { return x + y; }
int main(int argc, char *argv[])
{
using std::cout;
int (*) (int, int) = ∑
cout << "what" << '\n';
}
补充说明
以下程序在使用g++版本5.4.0编译时可以正常通过,但在gcc中无法编译。
int main()
{
int (*) = 20;
}
void foo();
...int (*) (int, int) = &foo;
- 有些奇怪的事情正在发生。(g++ 5.1.0) - Richard Crittenint (*)(int, int);
也可以编译。 - Sam Varshavchik