今天这似乎是一种常见的做法
auto foo(T a, K b) -> dectlype(a+b);
但这段代码是什么?
void foo(decltype(a));
在那里“a”是某类中的一种变量。像:
class SomeClass
{
public:
void foo(decltype(a));
private:
int a;
};
现在,我知道oldstyle方法是使用typedef:
typedef int IntType;
但是什么是decltype?你觉得怎么样?
我认为 - 这有以下缺点:
我能想到的一位专业人士:
Tbh,我认为这种利弊远远超过了这种类型的使用,但我希望听到除了我以外的意见:)
答案 0 :(得分:2)
我不希望我的API发生变化,因为我更改了某个变量的类型并忘记了这些影响。
如果我这样做,我想要编译错误。
就这样。