strong typedef の副次的効用

C++ が言語レベルで strong typedef をサポートした場合,副次的な恩恵として template の使用による code bloat (コードの膨張)が抑制できるっつーのがあるような気がする.

strong_typedef int hoge;

std::vector< int > vi;
std::vector< hoge > vh; // コンパイラが hoge が int の strong typedef だという
                        // 知識を持っているので, std::vector< int > と
                        // バイナリを共有できる.構造体によるエミュレートでは
                        // 無理.

で,この恩恵を現行の言語仕様で受けようとするなら,以下のようになるんじゃないでしょ〜かというのがこのエントリで書きたいこと.

#if defined(_DEBUG)
STRONG_TYPEDEF( int, hoge );
#else
typedef int hoge;
#endif

std::vector< int > vi;
std::vector< hoge > vh;

デバッグビルドでコードの型安全性を検査し(compile-time テストだけでよい,要するにコンパイルできるかどうかのテストだけ),リリースビルドではバイナリが共有できるという……だめぽ?
#コメントで郵便はみがきさんに指摘されているとおり,オーバーロードやテンプレートの特殊化には使えません.だめぽ…….