2017-01-16 38 views
0

我正在使用数学库Eigen,并在很多文件中使用了大量动态vector,模板类型为Eigen::Vector<T, -1, 1>。有了这个符号,我的代码非常密集,所以我有两个问题:如何做“类型定义”

我应该做一个类型定义,以便使用Vector<T> = Eigen::Vector<T, -1, 1>来获得更短更合适的代码吗?但是我的代码在这个修改中会更难理解。

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

+1

个人而言,我喜欢使用完全限定的名称,除非它非常详细。 – NathanOliver

+0

为这些自定义类型使用域特定的名称。有'矢量'会完全模糊。但是,例如,如果你有一个始终代表给定物理实体的类型(例如“force”),它将有助于将其定义为'template 使用force_vector_t = Eigen :: Vector '(全部人为的例子,我从来没有使用过Eigen库)。 –

回答

0

学会喜欢详细的符号Eigen::Vector。这样,你确切地知道你在处理什么。

使用using陈述,特别是在头文件,往往会导致代码的困难,从长远来看(你能永远记住这些名字空间你指的是?)阅读,也使潜在的命名空间冲突。

相同的样式适用于来自std命名空间的事物。