I like that using technique, but why is it using and not typedef? I thought using was meant for exposing names from superclasses.
template <typename T>
using MyVector = std::vector<T, MyAlloc>;
As a side effect, it is now also possible to use using as a 1:1 replacement for typedef: // strictly equivalent to typedef int MyInt;
using MyInt = int;This is one of the things that makes C++ mega-complicated. The same keywords have different meanings based on context, when really a new keyword should just have been used. For example "virtual" functions vs "virtual" inheritance.
It's for this reason, too, that Java 7 overloaded `try` to implement some sort of poor-man's-RAII-support, instead of adding a new keyword (such as C#'s `using`, which does the same, and was by the way also overloaded for the same reason)
You can read about the reasoning behind the new syntax here:
http://www.emarcus.org/papers/n1449.pdf
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n148...