是否可以将函数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/

10-15 00:38
查看更多