For the following source code: void main() { Object o = new Object(); printf("%*s\n", typeof(o).classinfo.name); // compiles ok printf("%*s\n", (typeof(o)).classinfo.name); // error } compilation fails (on win32) with the following message: main.d(4): found '.' when expecting ',' --- errorlevel 1
== Quote from d-bugmail (d-bugmail@puremagic.com)'s article > http://d.puremagic.com/issues/show_bug.cgi?id=764 > Summary: (typeof(o)).classinfo causes parser error > Product: D > Version: unspecified > Platform: PC > OS/Version: Windows > Status: NEW > Severity: normal > Priority: P2 > Component: DMD > AssignedTo: bugzilla@digitalmars.com > ReportedBy: ddaglas@gmail.com > For the following source code: > void main() { > Object o = new Object(); > printf("%*s\n", typeof(o).classinfo.name); // compiles ok > printf("%*s\n", (typeof(o)).classinfo.name); // error > } > compilation fails (on win32) with the following message: > main.d(4): found '.' when expecting ',' > --- errorlevel 1 On a related note, compiling with -H added the ()'s around the typeof(...) in the resulting .di file, which subsequently triggered the bug. Is it a bug that DMD adds the ()'s around the typeof(...)? --Dan
Fixed DMD 1.00
Added to DStress as http://dstress.kuehne.cn/run/t/typeof_16_A.d http://dstress.kuehne.cn/run/t/typeof_16_B.d
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル