N1891: Progress toward Opaque Typedefs for C++0X - std-proposals
Opaque Typedef(不透明なtypedef)、いわゆるStrong TypedefはC++11では入りませんでしたが、この提案をC++1yに向けて復活させよう、ということで議論が進められています。
構文的なところでは現在、継承ライクな構文や、エイリアス宣言にexplicitやnewを加える構文が主に考えられています。
後ろにいくほど新しい。
// 継承ライクな構文 class Address using public std::string { public: };
// エイリアス宣言にexplicitを付ける using A = int; // 新たな型を導入しない単なるtypedef using explicit B = int; // intからの明示的型変換を許可する新たな型Bを作る // もしくはexplicitを右辺に持ってくる? using B = explicit int;
// エイリアス宣言にnew explicitを付ける using new explicit B = int; // intからの明示的型変換を許可する新たな型Bを作る using new C = int; // intからの暗黙的型変換を許可する新たな型Cを作る // もしくはnew explicitを右辺に持ってくる? using B = new explicit int; using C = new int;