如何使用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))
之类的东西,当然这两个都不起作用......