朝、目が覚めてぼんやりと考え事をしていた。C++11の新機能をどのように活用できるかということについてだ。唐突に、inheriting constructorsはすごく役に立つということに気がついた。 まず、できるだけインターフェースは統一したい。たとえば、std::vectorにT型の要素を入れるのならば、std::vector<T>を使いたい。しかし、もしTがユーザー定義のクラス、MyClassの場合には、必ず、独自のアロケーター、MyAllocを指定したい場合、インターフェースの統一は厄介だ。 std::vector< MyClass, MyAlloc> v ; 古き良きtypedef名を使うという手がある。 using MyVector = std::vector< MyClass, MyAlloc > ; そして、ユーザーには、std::vector<MyClass>の代わりに、