C++11 では、次のような方法で「型エイリアス」を作成できます。
template <typename T>
using stringpair = std::pair<std::string, T>;
しかし、これは、テンプレートの typedef が次のようになると予想されるものとは異なります。
template <typename T>
typedef std::pair<std::string, T> stringpair;
ここで疑問が生じます - なぜ彼らは新しい構文を考え出す必要があったのでしょうか? typedef
古い構文で機能しなかったのは何ですか?
最後のビットがコンパイルされないことはわかっていますが、なぜコンパイルできないのでしょうか?