是否有很好的习惯来声明使用 (对于像 typedef 这样的用法)?
例如,如果我有一个拥有std::array<std::array<T, W>, H>
成员的班级,并且我想通过使用这样的方式来简化阅读和编写
template<typename T, uint32_t H, uint32_t W>
using matrix = std::array<std::array<T, W>, H>;
我该放在哪里?在类声明内部还是外部,甚至在单独的头文件中?
谢谢
答案 0 :(得分:3)
您的type alias template具有与模板类完全相同的目的,即定义类型:
template<typename T, uint32_t H, uint32_t W>
using matrix = std::array<std::array<T, W>, H>;
int main() {
matrix<double, 10,3> m;
return 0;
}
因此,好的做法是完全像处理其他类型定义一样处理它:
对于非模板类型的别名,其原理与旧的typedef
相同,因此与上述完全相同,此外,