What's New for D 0.178
Dec 23, 2006New/Changed Features
- Implemented Named Return Value Optimization
- If the first element of an array literal is a static array, it is converted to a dynamic array.
- Empty ; no longer allowed after conditional statements, see Bugzilla 576.
Bugs Fixed
- Fixed Bugzilla 39: ArrayMemberInitialization, StructMemberInitializer inconsistencies from dmd's behavior
- Fixed Bugzilla 40: DecimalFloat spec doesn't match dmd behavior
- Fixed Bugzilla 238: Cannot initialise const field from foreach loop on associative array
- Fixed Bugzilla 265: Selective import from renamed import behaves strangely
- Fixed Bugzilla 576: version.html - ConditionalStatement grammar doesn't make sense
- Fixed Bugzilla 577: statement.html - NonEmptyStatement grammar lists DebugStatement and VersionStatement, which are not defined
- Fixed Bugzilla 612: Associative arrays ignore opEquals, contrary to the spec
- Fixed Bugzilla 630: Obscure, unimplemented features related to in/out contracts
- Fixed Bugzilla 631: Spelling errors in DMD distribution
- Fixed Bugzilla 634: writef doesn't work on enums
- Fixed Bugzilla 635: regression: looping "Error: outer class Outer 'this' needed to 'new' nested class Inner"
- Fixed Bugzilla 650: Assertion failure: '0' on line 774 in file 'expression.c'
- Fixed Bugzilla 651: Assertion failure: 'global.errors' on line 2622 in file 'template.c'
- Fixed Bugzilla 654: Const string member using implicit type inference gives garbage in certain situation
- Fixed Bugzilla 661: Error using a zero-init struct's init property
- Fixed Bugzilla 663: Slice assignment does not bounds check when it should
- Fixed Bugzilla 665: missing functions in std.c.linux.linux
- Fixed Bugzilla 667: incorrect value for std.socket.SocketShutdown.BOTH
- Fixed Bugzilla 669: (a == b) misuses opCmp and opEquals
- Fixed Bugzilla 672: Compiler endless loop with nested class object
- Fixed Bugzilla 673: ABI as documented is 32 bit specific.. how about 64 bits?
- Fixed Bugzilla 681: Array -- Implicit type doc updates needed
- Fixed Bugzilla 682: dmd segfault with vararg template
- Fixed Bugzilla 683: New: dmd segv, this ain't the same as bug 682
- Fixed Bugzilla 684: dmd should compile this
- Fixed Bugzilla 685: dmd assertion failure
- Fixed Bugzilla 686: [Regression] opCast of a struct or union is called in nonsensical circumstances
- Fixed Bugzilla 687: DDoc doesn't document anonymous enums
- Fixed Bugzilla 688: Implicit function template match doesn't work for classes
- Fixed D.announce/6072
- Fixed D/45058 items 1, 2 and 4
- Fixed D.bugs/6300: Assertion failure: '0' on line 704 in file 'expression.c'
- Fixed c++/5355
感谢Walter的圣诞节礼物。
比较大点的修改是NARO,这个在C++里面早就实现了的,D语言的也只有struct才需要实现这具特性。
Fixed Bugzilla 688: Implicit function template match doesn't work for classes
这一条的情况和我的泛型矩阵类很像,遗憾的是我的代码依旧无法编译通过。