类型T的多个别名

时间:2016-09-06 13:59:45

标签: c++ c++11 c++14

我想为一个类型创建多个别名,我真正需要的是如下所示,

using MIN = MAX = AVG = nano_t;

(这似乎更优雅,更少打字,而且还有两个以上的情况我必须做这种分配),而不是这样做:

using....
using...
using... every time

但单行分配对我想要的编译器没有意义。还有其他办法吗?

2 个答案:

答案 0 :(得分:6)

using不允许多个别名,但typedef会:

typedef nano_t MIN, MAX, AVG;

答案 1 :(得分:1)

显而易见的答案是在单独的声明中进行:

using MIN = nano_t;
using MAX = nano_t;
using AVG = nano_t;

如果确实想要关注DRY(但我不打扰这么小的例子),你可以这样做:

using min_max_avg_aliased_type = nano_t;
using MIN = min_max_avg_aliased_type;
using MAX = min_max_avg_aliased_type;
using AVG = min_max_avg_aliased_type;