読者です 読者をやめる 読者になる 読者になる

VS2013で破綻した型の名前を出力してたら{ctor}の文字が出てきた

タイトルで話が完結している namespace minibug { template<class ...T> struct List{}; template<class...T> std::true_type length_impl(List<T...>); template<class T> struct wrap{ using type = T; }; template<class T> using identity = typename wrap<T>::type; template<class list> using length = identity</class></t></class></class></t...></class...t></class>

VS2013で遭遇した最悪なバグ

自分が遭遇した最悪なバグを書いておこうと思う 型破壊バグ std::cout << typeid(BreakType).name();//struct ??::??と出力される //error C2133:サイズが不明です //error C2512:コンストラクタがない BreakType c; 上記のように壊れた型が発生する初代ポケ…

二項演算子をクラス内でオーバーロードしたテンプレートクラスをテンプレート関数で返してdecltype内で演算すると C2677 エラーが起きて最高に意味不明

template<class> struct rhs { friend int operator*(int x, rhs){ return 2; } }; template<class T> rhs<T> make(T){ return rhs<T>(); } using R = decltype(42 * make(42)); int main(){} 自身が右辺に来る二項演算子を クラス内でオーバーロードした テンプレートクラスを テ</t></t></class></class>…

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 = typena</class></size_t>…