This doesn't appear to be a problem on Win32. ---------- module a; private { struct IsEqual( T ) { bool opCall( T p1, T p2 ) { return p1 == p2; } } template ElemTypeOf( T ) { alias typeof(T[0]) ElemTypeOf; } } template find_( Elem, Pred = IsEqual!(Elem) ) { size_t fn( Elem[] buf, Elem pat, Pred pred = Pred.init ) { return buf.length; } } template find( Buf, Pat ) { size_t find( Buf buf, Pat pat ) { return find_!(ElemTypeOf!(Buf)).fn( buf, pat ); } } ---------- module b; private import a; int fn() { return find( "123", '2' ); } ---------- Simply run "dmd a.d b.d" and watch the fireworks. This appears to be related to the default final parameter, Pred.
Correction, this crashes on Win32 as well.
Fixed DMD 1.00
Added to DStress as http://dstress.kuehne.cn/compile/t/template_55_A.d http://dstress.kuehne.cn/nocompile/t/template_55_B.d http://dstress.kuehne.cn/nocompile/t/template_55_C.d
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル