怎么做 "Type Definition"

How to do "Type Definition"

我正在使用 Eigen 数学库,并且在很多文件中使用了很多模板类型为 Eigen::Vector<T, -1, 1> 的动态 vector。使用这种表示法,我的代码非常密集,所以我有两个问题:

我是否应该进行类型定义,以便使用 Vector<T> = Eigen::Vector<T, -1, 1> 获得更短、更合适的代码?但是我的代码修改后会更难理解。

如果我做这个类型定义,我应该在哪里做?因为我使用外部库 (Eigen) 修改库文件不是一个好的解决方案,但是专门为此定制的文件看起来很脏。

学会喜欢冗长的符号Eigen::Vector。这样,您就可以确切地知道自己在处理什么。

使用 using 语句,尤其是在头文件中,往往会导致代码 更难 在长 运行 中阅读(你能不能还记得你指的是哪个命名空间吗?),并且还会导致潜在的命名空间冲突。

相同的样式适用于 std 命名空间中的内容。