2010年3月18日 星期四

namespace 的分類設計

最近習慣為每個模組加上namespace,享受namespace帶來的設計概念,但是也遇到了namespace的分類問題,常常namespace分得不夠好且使用起來也不方便,主要是我對於我的code的模組有時候分得不夠清楚,都是是在錯誤中學習,將1個模組拆成2個又將2個合併為1個,花了很多時間在這方面... 囧

後來大概上網看了一下,一直在想boost::tuple的命名概念,我想我以後再設計namespace時就按照這個一般的原則執行就好了。
The common principle is that domain libraries (like graph, python) should be on a separate subnamespace, while utility like libraries directly in the boost namespace.
文章中也有提到tuple設計的結果
The final (I truly hope so) solution is now to have all definitions in namespace ::boost::tuples, and the most common names in the ::boost namespace as well. This is accomplished with using declarations (suggested by Dave Abrahams):
namespace boost {
namespace tuples {
...
// All library code
...
}
using tuples::tuple;
using tuples::make_tuple;
using tuples::tie;
using tuples::get;
}

沒有留言:

LinkWithin

Related Posts with Thumbnails