enable_ifにdecltypeを渡すとMSVC10が落ちる
#include <iostream> #include <utility> #include <type_traits> template<typename C, typename V = void> struct enable_if : std::enable_if<C::value, V> { }; template<typename T> void sf (T const & t, typename enable_if<decltype(t)>::type * =0) { std::cout << "OK\n"; } int main () { sf(1); }
↓
[F5]
↓
fatal error C1001: コンパイラで内部エラーが発生しました。
decltypeに渡すものはなんでもいいっぽい(いいというか落ちるからダメなんだけど…)
std::identity(相当)を挟んでも落ちる。