と http://cpplover.blogspot.jp/2013/04/isexplicitlyconvertible.html のコメント書いてて思ったので,書く. まず些細な違いとして, auto は右辺の値の const や参照を消し飛ばす*1,という点が挙げられる. using T = int const; // Alias declarations; I prefer this to typedef double x = 1.2; T t(x); // decltype(t) is int const auto t = T(x); // const is removed; decltype(t) is int using T = int const&; int x = 42; T t(x); // t is a const reference to x; decltype(t