如何使用decltype指定返回一个重载函数指针的函数的返回类型?

时间:2015-04-15 12:37:55

标签: c++ overloading function-pointers decltype

如何使用decltype指定返回特定一个重载函数指针的函数的返回类型?

像这样:

void fun(int a) {
    cout << "void fun(int a) : " << a << endl;
}

void fun(double a) {
    cout << "void fun(double a) : " << a << endl;
}

decltype(?) *getFcnPtr() {
    return fun;
}

如果我希望getFcnPtr只返回void fun(int a)版本,该怎么办?

实际上,我正在阅读C++ Primer并正在考虑decltype

我知道我可以使用这种形式:

void (*getFcnPtr()) (int a) {
    return fun;
}

或者使用非重载函数,decltype(FcnName) *getFcnPtr将完成工作,但如果我想返回重载函数,如何使用decltype指定getFcnPtr的返回类型?

decltype是否有可能以这种方式使用?有没有办法可以添加参数来帮助?像decltype(void(int))decltype(fun(int))之类的东西,当然这两个都不起作用......

0 个答案:

没有答案