VisualStudio2013のバグ?alias templateにT::valueやT::typeやvariadic-templateを使うとC2955エラーなど不都合が起こる
VisuakStudio2013のバグ?エイリアステンプレートにエイリアステンプレートを使うとC2955エラーを吐く - TXT.TXT
の問題をちゃんと分析しなおした
テストコードはーい
template<size_t N> struct Index{ static const size_t value = N; }; template<class T> using foo = typename T::type; template<class T> using bar = Index<T::value>; template<class T> struct test { //using f = foo<foo<T>>; //error //using b = bar<T>; //error };
上のコメントアウトしている部分がC2955エラーになる
が、真の問題はfoo barの部分であると考える
alias templateを使う際はこれ値注意したい
またvariadic-templatesをつかうと不具合が出ることもあるようだ。ソースは私
上記さえ気を付ければalias template固有の問題は今のところ思いつかない(まぁtemplate全体の不都合はあるんだけどね)