是否可以将函数bar
声明为具有与foo
函数相同的签名?
int foo(int a)
{
return 0;
}
decltype(foo) bar
{
return 1;
} //imaginary syntax
最佳答案
我认为这与typedef和别名相同:您可以使用decltype
声明一个函数,但不能定义它:
int foo();
decltype(foo) bar;
int foo()
{
return bar();
}
int bar() { return 0; }
被clang++ 3.5和g++ 4.8.1接受
[dcl.fct.def.general]/2禁止(语法上)不带括号的函数定义:
关于c++ - 使用decltype()声明函数签名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21055039/