【发布时间】:2014-05-03 03:46:51
【问题描述】:
有函数定义:
void f(int) { }
我要定义:
int a;
但如果函数定义更改为:
void f(double) { }
变量定义必须变成:
double a;
即“a”的类型必须与“f”函数的第一个参数相同。 我需要类似以下的东西:
decltype_of_argument<f, 0> a;
在 C++ 中可以吗?
【问题讨论】:
-
decltype_of_argument 是不可能的,原因与此处解释的原因相同:stackoverflow.com/a/22631749/2694444
-
所以如果 f 需要一个兽人,你会希望 a 成为一个兽人?
-
@galop1n 仅适用于
f重载或具有重载operator()'s 的仿函数 -
“我需要类似下面的东西”为什么?您确实意识到,如果您在这种情况下使用
int a=0,它将被提升为double,对吧?