这似乎是今天的一种常见方法
auto foo(T a, K b) -> dectlype(a+b);
但是这段代码呢?
void foo(decltype(a));
其中“a”是某个类中变量的一种类型。喜欢:
class SomeClass
{
public:
void foo(decltype(a));
private:
int a;
};
现在,我了解旧式方法是使用 typedef:
typedef int IntType;
但是 decltype 呢?你怎么看?
正如我所看到的 - 这有以下缺点:
- 不能在抽象接口中使用(没有 "a" 类型)
- 使代码更难阅读
- 最常见的 IDE 不会为 decltyped 函数生成正确的定义
我能想到的一个专业人士:
- 您无需更改 typedef 就可以安全地避免类型更改。
Tbh,我认为缺点远远超过 decltype 的这种用法,但我想听听我以外的意见:)