2017-01-16 106 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命名空間的事物。