1
我定義升壓多指標容器:C++提高命名空間(而不是隻)名稱快捷方式
namespace bmi = boost::multi_index;
struct DijkstraTriplet {
...
};
typedef multi_index_container <
DijkstraTriplet,
bmi::indexed_by<
bmi::ordered_unique<bmi::member<DijkstraTriplet,size_t,&DijkstraTriplet::linkId> >,
bmi::ordered_non_unique<bmi::identity<DijkstraTriplet> >
>
> DijkstraTripletContainer;
在某些時候,我用數據填充它,並希望掃描其指標之一。爲此,我定義了一個迭代器:
DijkstraTripletContainer::nth_index<0>::type::iterator it;
(使用舊的編譯器)。這是令人難以置信的漫長而尷尬。爲了使它更短,更易讀的我添加這些行:
#define dtt0 DijkstraTripletContainer::nth_index<0>::type
#define dtt1 DijkstraTripletContainer::nth_index<1>::type
,然後用於dtt0:迭代(這是優雅短,但在同一時間難看,因爲在#定義來表示)。有沒有更好的方式有沒有#定義的快捷方式?我看起來像優雅的東西
namespace bmi = boost::multi_index;
評論?
我想知道我怎麼沒有想到它自己。很可能,因爲它是名稱空間和類型的組合.. – arthur