0

给串加别名.

加​​.idup​​创建​​不变​​副本

加​​常/不变/止​​.

​每一值​​变量现在默认为​​止​

​类和构​​不变声明现在必须有()

1

.init基于​​类型​​​,而非​​初始值​​.

3

加​​外(系统)​

加​​标.特征​

4

加​​-debuglib​​和​​-defaultlib​​命令行开关.

允许​​多模块​​静态​​构造/析构​​函数

6

各种串改为​​不变​​.

对函数和模板实现了​​重载集​

7

传递常尾​​不变​​.

重载​​一元*​​.

支持完整​​闭包​​.

8

​std.functional|typecons​​等新模块

​构/类/接口​​可为​​常​​.

​typeof(return)​​,

改变​​分析覆盖​​方式

9

重做,​​常/不变​​语义

允许声明清单常量

10

类禁止重载​​opAssign​​.

​WinMain和DllMain​​可在模板插件中.

加纯

11

大量增加函数,如​​std.algorithm​​.

加​​nothrow​​,

重新允许​​自动​​接口

允许​​null<=>常/不变​​.

如果每个参可​​隐式​​转换,则可​​隐式​​转换​​构字面​​.

如果​​字段<=>常/不变​​转换,则​​构​​可以

​.tupleof​​可访问​​构/类​​私字段.

12

加​​构​​​的​​postblits​​和析构器

13

加​​-ignore​​开关忽略不支持编译指示.用​​-v​​可打印出.

开关语句接受​​运行时​​不变和常语句.

隐藏方法有,编译时警告.

加​​pure​​和​​nothrow​​,未实现语义.

为线本加​​__thread​​存储类.用于​​测试​​,检查后端机器

​obj2asm​​和​​dumpobj​​可处理​​elf​​修复记录.

​偏序​​消歧​​重载函数​​.

14

加​​-man​​浏览手册

加​​-lib​​开关生成库文件

生成​​exe​​中,现只有一个​​obj​​文件,

15

​模板别名​​参数现在可以是​​字面​

可推导​​函数模板​​返回值.

重载时,​​非左值​​不再匹配​​ref/out​​参数.

加​​模板约束​​.

16

内部运行库,加了​​.__vptr和.__monitor​​属性

18

支持​​操作​​数组

19

加了​​构构造器​​​,​​__ctor,__dtor​

20

改进​​AA​​,

实现​​不变​

允许按​​引用​​返回

21

加​​-safe​​开关,和​​module(system) Identifier;​​语法

​foreach​​支持​​区间​

​scope​​存储类,表示​​参数​​不会​​脱离​​调用函数域.

给闭包参数用此,避免​​调用​​函数分配闭包.

​lazy​​表明​​域​​,因而不触发​​堆分配​​闭包.

​构​​的​​本​​是​​引用​​而非指针.

22

​IUnknown​​用​​extern(System)​​接口.

可语义检查​​纯/不抛​​.

​shared​​是类型​​构造器​​.

23

优化器利用​​不变和纯​

为减少模板膨胀,串字面类型为​​invariant(char)[]​​.

26

过时​​转义​​串字面

加​​嵌套构​

27

​std.math​​中函数,基本为​​纯/不抛​​.

加​​别名本​​.

​float.init​​默认为​​nan(非数)​​.

​窗口​​中,多源文件,用​​后台​​线程​​读源文件​​来加快编译.

29

​标.算法​​转为​​区间​​原语.

大量更改标准库.

加模板函数字面

​byRecord​​很容易迭代​​结构​​文本

30

加​​-vtls​​编译器开关

现在默认为​​线本​​存储

31

​dmd->dmd2​​目录

禁止​​隐藏​​本地符号的符号

加​​止 开关​​,加​​若区间​​.

禁止导致​​重要位丢失​​的隐式转换整

加部分函数

32

发布窗口版本,改进​​assert(0)​​消息,

​ctfe​​支持​​a[i].var = e2/a[] = e​​.

可在​​CTFE​​中用​​成员函数/重载运算符/嵌套函数​

​CTFE​​解释为何编译时无法​​解释​

同步​​成员​​函数现在隐式为​​共享​​类型

33

标准库,现为​​Boost​​许可

用​​-O​​编译时,可检测非法空解引用

​typeid(type)​​现在为​​叶类​​.

改进​​整转串​​.

35

​-X​​​生成​​数格​​.

36

静态数组​​按值​​传递

37

​?:​​是可修改左值.

数组字面​​=>​​动态数组而非​​静态​

​数组.长度​​支持​​op=​​.

数组,关联数组用​​?:​​跨所有元素判定类型

​数组连接​​现在允许,元素隐式转换为数组元素类型

[]中不允许​​逗号​​运算符.

​ClassInfo->TypeInfo_Class​

​typeid(obj)​​应返回对象​​动态​​类型.

删除​​-safe​​开关,增加​​-noboundscheck​​开关.

加​​x^^y​​运算,加​​opDispatch​​.

属性,只能​​0/1​​参,​​非属性​​不能重载​​属性​​.

38

​d运行时​​中加​​core.cpuid​

​opApply​​每一迭代时首选.

加​​动 引用​​函数.函数模板加​​动 引用​​.

加​​isRef,isOut和isLazy​​特征

40

澄清:函数返回不是左值

加​​共享静​​构造与析构,普通​​静​​现在为​​线本​​.

加​​-map​​命令行开关.

加​​@禁止​​属性

​ctfe​​可用​​闭包和函数指针(字面)​​.

​ctfe​​可用​​懒​​参,​​符数组切片​​.

加​​静/止​​函数实现至接口.

​ModuleInfo​​,从​​类=>构​

41

​allMembers/derivedMembers​​现在返回​​串元组​​.

​[__traits]​​,可构造​​数组字面​​,每一语句可编译时迭代.

​接口​​成员可有​​合约​​.

新​​重载​​操作符机制

警告不再​​停止解析/语义​​,仍不生成输出

​-wi​​不将警告视为错误.

​插件模板​​前有​​mixin​

加​​!in​​操作符

可​​比较​​关联数组等价性.

用​​$​​表长度.

用​​toDelegate()​​转​​函数=>闭包​​.

实现​​构造函数​​属性

为构字面,实现如​​immutable(S)(1,2,3)​​限定

可用不同​​数组元素类型​​实现数组相等

加简单​​检查拼写​

​++x​​应是左值

​[1,2,3]​​默认为​​整[]​​了.

43

静态数组的​​.init​​属性现在是数组字面.

46

加缺少导入声明的提示

加速编译

​长度​​都是​​@属性​​.

47

​op=​​改为​​op​

大量修改​​标准库​

49

修改标准库

50

可用​​[]​​访问​​元组​

要过时掉​​C函数指针语法​​.

取消​​内部联​​.

加​​弱纯​​检查规则

51

所有​​std.数学​​​都是​​@safe pure nothrow​​.

52

支持64位林操,实现​​异常​​链

支持​​HTML5​​实体

53

允许​​调试条件​​中用​​不纯​​代码

删除八进制字面

54

实现​​@安全,@属性​

自动推导​​@safe,pure,nothrow​

​CTFE​​中允许​​标签(断/下)​

警告若中​​直下​

​ctfe​​支持​​指针/堆分配构​​.

​内联汇编器​​加了​​SSSE3​​指令

​警告=>弃用​​:非止开关必须有​​默认​​,​​函数​​隐藏函数

调用​​pure nothrow​​时警告,允许​​极​​为​​AA​​的键

推导​​纯/安全​​.

有​​-map​​开关才生成​​map​​文件.

加​​-property​​开关.

切换用​​posix.mak​​文件,

55

加了​​dman​​用于​​d手册​​.

加​​数格​​保护

加​​SSE4.1​​和​​SSE4.2​​汇编指令

一堆标准库修改

56

加​​-gs​​编译器开关

应在受保护函数的​​开头和结尾​​检查不变量

加单独的选项来控制生成栈帧

57

​64​​位目标中更好地使用​​XMM​​寄存器

用​​immutable​​,弃用​​invariant​​.

​obj2asm​​和​​dumpobj​​支持​​Mach-O​

​CTFE​​支持类,接口和异常

弃用​​typedef​

模板值参数特化不能​​隐式转换​

从​​动态数组和指针​​类型中删除了​​头常​

58

加新​​=>​​λ语法.

加​​1.用户属性​​语法.这里​​1.f​​非浮点字面.

用​​-shared​​开关,而非​​-dylib​​.

​OSX32​​位目标中更好地使用​​XMM​​寄存器

支持​​AVX​​指令的内联汇编器,仅限​​64位​​.

​基类保护​​过时.

​构/类​​不变量现在隐式为​​常​

59

应​​模板化​​构造函数

实现​​统调​

同名模板应允许重载同名成员

不支持​​Win9x​

60

大量更改标准库

​TypeInfo.rtInfo​​取运行时信息

支持​​AVX256​​位​​SIMD​​指令

完全删除​​html​​输入

一大堆弃用,

更改了​​align​​属性的工作方式

​Win32​​程序无法在大于​​16​​字节的边界上对齐.

禁止用​​模板接口​​函数,很难​​重载​​操作符.

61

​dmd​​默认​​不推荐​​使用功能显示为​​警告​

​-de​​旧默认,​​-dw​​显示新默认.配置文件中加​​-de​​,而编译时用​​-dw​​来覆盖.

62

更改​​typeof()​​,

​alias foo = int​​不适用​​子类型​​.避免​​别名​​可能的​​父构造器​​.

​63​​,可能的新语法​​alias this : x;​​.

63

警告带​​初化器​​的​​常和不变​​字段,应改为​​枚/静​

始终​​可寻址​​聚合中​​非静​​字段,占据空间.要加上​​静​​来访问,​​清单常量​​每次使用时分配,​​静​​更方便.

​隐式静​​导致​​混淆​​.

构造​​对象​​时会考虑​​构造器限定符(常/不变)​​,这样​​仅带常/不变​​的构造器不能造​​可变​​对象.

无​​共享/不变​​则不能构造​​共享/不变​​.但带​​纯​​的可用来构造.​​纯​​可构造​​共享/不变​​.

不要求​​按位​​比较成员(早期数组按位比较),现在​​按构​​比较.无​​opEquals​​时,用​​.tupleof​​来比较,

复制数组,总要求​​切片​​语法.

类型不能为​​typeof​​的参,必须是​​值​​.可这样​​typeof(foo(int.init))​​.​​类型​​不再按​​值​​传递,避免混乱.

每一中​​索引​​不再是​​隐式引用​​,而默认是​​值类型​​.避免​​难以跟踪​​错误.

关联数组在赋值前不再默认初始化.分配期间的默认初始化,可能导致错误.

​覆盖​​方法不再继承​​常​​属性,要​​覆盖常​​,要加上​​常​​.允许根据方法的​​常​​来引入​​新重载​​,而非​​覆盖​​.也就是区分​​常/非常​​版.可用​​alias super.foo foo;​​加入重载集.

不能隐式转换​​typeof(null)=>T[]​​.用​​(T[]).init​​来正确书写.

​模板 本​​可用来推导​​成员函数​​的​​限定符​​,如加上​​不变​​.

​数值​​切片现在是​​右值​​.即不能取地址,也不能按引用传递给​​函数​​.要同时接受​​左值/右值​​用​​auto ref​​.如不分配和调整​​切片​​大小,可用​​右值​​.

调用点​​重新分配或调整​​此类切片时,按​​引用​​传递切片​​无可观察​​到的效果.

仅在特定条件下,可不带​​本​​访问非静态字段.现在仅允许知道的​​offsetof,init,max​​,少数几个.调用非静态字段的静态方法时,最后有​​静​​也可以.

不再隐式转换​​数组​​为指针,要显示用​​.ptr​​或​​&数组[0]​​.

可隐式转换​​返回​​唯一对象​​表达式​​为不变.仅一个指针的,可初化为​​不变​​.

现在用户可初化​​void​​的静态数组,​​void[2] varr3 = void;​​,直接​​.init​​零初化.

不用特化静空数组,来允许通用的​​.init​​.

聚集现在可包含多个不变量,按序合并为大函数运行,但不能引用每个​​不变量​​包代码

模板聚集方法,可推导属性.

​是式​​[is]式不再需要​​标识符​

可隐式转换已知大小​​动态数组​​为静态数组,或转换串为​​静态数组​​引用.

可​​空初化​​元组.但不确定元组值.

现在可在​​继承列表​​后放模板约束,以前很难发现​​继承列表​​.

可比较​​元组​​等价性.内置​​.tupleof​​也可轻松比较.不同类型​​相等结构​​测试.也可通过切片比较元组的​​子集​​.

可在​​常构造器​​中重新初化​​带有初始值设定项​​的字段.

加​​isNested​​,发现带​​环境​​指针聚集和函数.

模板可嵌套在函数中,更好封装.避免​​模块​​域符号污染

​UFCS​​现在适用于有域的本地导入,聚集内导入也可以,​​本地​​导入比​​模块​​集导入优先.

加​​__FUNCTION__,__PRETTY_FUNCTION__和__MODULE__​​.

弃用宏.

测试单元主体是文档一部分,这样示例始终最新.用​​///​​表示文档化​​测试单元​​.

​-main​​测试库有用的​​主​​函数开关.

​-cov​​测试覆盖率.

​pragma(mangle, ...)​​,自定义​​符号​​混杂名.如​​module​​是保留关键字.

64

定义和​​导入​​包模块.

新​​同名​​模板语法.​​alias Tuple(T...) = T;​​,注意用​​别名​​.

允许​​new Server(args).run();​​,​​new​​后的​​后缀式​​表达.如为​​默认​​要加​​()​​.

隐式​​函数模板实例化​​(​​ifti​​)现在支持​​外围​​的​​类型/域​​推导,​​call(T)(T t, T.Foo foo)​​.这样.也可为​​别名​​.

​ddoc​​参数不同时,发出警告

现在可隐式转换切片​​串字面​​为​​字符指针​​,简化与​​c​​库交互.

现在可以相互重载​​模板化和非模板化​​函数

跨模块模板声明,构成一个重载集.

用​​-deps​​打印出依赖.

65

​-run​​开关,跑​​无扩展名​​文件.主要是​​posix​​系统,类似​​rdmd​​在第1行.

​goto​​不能跳过声明变量.

无论​​直接/间接​​实例化,现在可推断​​实例化​​函数的属性

加​​const/inout​​限定符.

可切片内置元组

用​​__traits(compiles, 模块或包名)​

​空​​初化​​常/不变​​现在占用​​对象​​空间.

​ctfe​​可处理重叠​​联​​.

禁止​​插件​​构构造器和​​静opCall​​.​​static opCall​​模拟无参构造,推荐用​​工厂​​函数来创建​​结构体​​实例.

66

​-boundscheck=[on|safeonly|off]​​.更清晰.

​-vgc​​,分配代码点.

加​​@nogc​​属性,不允许在里面分配GC堆

​-vcolumns​​显示错误消息列数.

​-color​​控制台着色.

加了​​extern (C++, a.b.c)​​,

加了重载多维切片运算符

支持​​窄转换​​的推导模板

不推荐​​共享变量​​,​​读写修改​​,而是用原子操作.

内置​​标量​​也可​​统一​​构造.

​AA​​用​​==|opEquals​​实现比较.

67

现在,堆中构调用​​析构器​

​asm​​语句块,可有​​pure nothrow @nogc @trusted​​等属性.这样,相应属性函数可用​​asm​​块.

​包加绑定​​,可​​package(a.b)​​这样访问.这样,​​a.b​​中模块都可访问.

​参数​​中​​return ref​​表示可能​​返回​​参数的引用.模板可推导出​​中​​.这叫​​密封引用​​.

​with​​对象,临时生命期.

优化垃集

可用​​--DRT-gcopt=help​​查看垃集的配置.

extern(C) __gshared string[] rt_options = [ "gcopt=initReserve:100 profile:1" ];

上面设置配置.

68

​-profile=gc​​,分析内存.

​用户定义类型​​析构器和后传输函数:​​.__xdtor和.__xpostblit​

加​​pragma(inline)​​,与​​-inline​​一起用.

现在推导​​动 返回​​属性.

有​​auto​​的必须有​​函数体​​.

现在​​索引类型元组​​可在点标识符前,如​​struct X(Types...)​​.

支持从​​函数默认参数​​推导模板参数,避免冗余.

可在前端检测无效​​重转​

允许编译时检查

区间化​​标准库​​函数.用​​区间​​可消除​​垃集​​分配.

可用​​--DRT-gcopt=profile​​分析垃集调用.

AA现在用​​开放寻址​​,​​垃集​​管理大分配性能较低.

​profile=gc​​选项.

69

​DMD​​前端移植到​​D​​.基本支持​​Objective-C​​.弃用​​-property​​.但​​@property​​未变.

改进​​dmd​​代码生成器.用​​SUB/MOV​​代替​​push​​优化安装​​参数和栈桢​​,​​nothrow​​函数,不生成​​bp​​栈帧

现在是动态加载​​libcurl​​,

支持链接至​​VS2015​

改进​​标准库​​文档.

70

支持创建​​alias less1 = (a, b) => a < b;​​函数字面别名.

大大扩展​​窗口绑定​​.

71

修复检查导入全名.

修复可选和重命名导入.

​限定名/基类名/with语句​​不再搜索​​导入​​声明.

不再可见​​私有符号​​.

清单常量可用于弃用消息及连接串.

72

不推荐用逗号表达式

不推荐​​隐式抓​​,抓​​Throwable​​,改为​​catch (Throwable)​

弃用​​隐式连接​​串,用​​~​

取消​​联​​字段中的​​后传输/析构器/不变量​​.​​(this(this))/(~this())/(invariant())​

​对齐​​可与​​ctfe​​式一起用,如​​align (n == 8 ? 2 : 1):​​.

​无间接值参​​忽略​​域​​.

推迟​​分析​​导入模块中的别名

​__FILE_FULL_PATH__​​源文件全路径名.

加​​-verrors=spec​​开关,推断​​编译​​的错误.如​​是否​​编译某句.

73

​-mscrtlib= libname​

​D_AVX​

75

弃用分号的空语句

​TypeInfo.init​​现在指的是类型属性

76

支持​​static foreach​

增强​​-betterC​​功能,默认不连接​​标准库​​.

允许后端发出​​AVX2​​指令.

77

混杂名,支持​​引用和标识符​​.

带​​extern(D)​​在出现超过1次的情况下,用​​后向​​引用名.减少符号长度

删除​​构造器/析构器​​的​​assert(this, "null this");​​前置断言.

​dmd​​构建可重现.相同​​源码+配置+编译器版本​​生成确定​​二进制​​.

模板化​​向量​​化数组操作,​​dmd​​对​​64位​​用​​SSE2​​,用​​-march=native, -march=avx2​​支持

实现不再弱化​​浮点除法​​,精度不重要时用​​-ffast-math|(1.0/scalar)​​.

78

​op分发​​现在符合​​域​​的解析规则.

​do​​替换​​body​

​pragma(crt_constructor)​​和​​pragma(crt_destructor)​​在​​c主​​前后初化和清理代码.

可在​​-betterC​​中用于替代​​shared static this()和shared static ~this()​​.注意,执行时未初化​​d运行时​​.未指定​​构造器​​执行顺序.

弃用不同类型指针减.

可变模板参数不再需要​​别名​

可选​​ModuleInfo​​.

​更好C​​也可​​scope(exit)​​.加了​​raii与试终​​.仍不支持异常,

​dmd​​可检测​​VS​​路径.允许​​dmd​​调用链接器.

79

​dmd​​现在显示​​哪个参数​​不匹配.不适用有重载时.

注意​​逗号表达式​​与​​逗号运算符​​.已弃用​​逗号式​​.​​for循环​​仍允许​​逗号运算符​​.最好拆分为两个语句,或用λ.

变参模板参数后,允许默认值.

弃用​​删​​,用​​destroy​​或​​core.memory.__delete​​替代.​​-dylib​​已弃用,用​​-shared​​生成共享库.

可实验​​-dip1008​​,​​@nogc​​异常.

检测​​__traits(isDisabled)​​函数,是否禁止函数

按​​int64_t/uint64_t处理long/ulong​​,​​D与C++​​互操作更简单.

对​​extern(D)​​符号,加个​​_​​前缀

过时​​HexString​​字面

​-i​​自动导入模块,还可​​-i=-foo.bar​​排除.

​dmd -Xi=compilerInfo -Xi=buildInfo -Xi=semantics -Xi=modules​​生成更多信息.

​Windows​​不需要​​sdk​​构建​​64位​​.有​​MinGW​

​DMD​​与运行时进一步分离,可一个空​​object.d​​.最小​​运行时​​.

​dmd -conf= -lib math.d​​.举了几个例子,需要时付成本.

弃用导入私有.

​@safe​​代码上不能用​​数组​​的​​.针​​.相反用​​&arr[0]​​是可以的.

大量标准库修改.

80

大量弃用.过时​​类分配器/析构器​

编译时,可用​​^^​

支持​​extern (Objective-C)​

81

静态块中禁止​​构造函数​​.在​​块​​外声明​​构造器​

禁止​​this和super​​作类型.在之外加上​​typeof​​就行.

加基于表达式的合约语法

改进​​extern(C++)​​构造与析构混杂,​​extern (C++)​​语义等价重载.​​opCmp​​与​​!​​不等价,是例外.

混杂​​extern (C++) class​​已工作.

支持迭代模板重载​​__traits(getOverloads)​

​__traits(getLinkage, ...)​​,对构,类和接口都工作

隐式​​抓​​是错误.

不同枚举​​隐式比较​​现在会导致错误

内联汇编器,支持​​IRETQ​​.是​​IRET​​的64位版本.

可用​​纯D​​写​​64​​位中断

仅用静态字段,则可在无运行时时用​​接口和类​​,未实例化类,不必有​​TypeInfo​​.

也可用​​非共享​​静态成员,但此时为​​线本​​成员

冗余​​@safe​​等存储类,现在是错误.

​object.destroy()​​支持​​extern(C++)​​类

弃用​​std.c​​,用​​core.stdc​​.

82

​-betterC​​可比较​​正​​字节类型与构.

弃用条件式后跟赋值式,易歧义

现在可在调试块中用不安全代码

弃用​​opDot(D1)​​,可用​​别名本​​.

​枚成员​​上可​​过时,@禁止,用定属​​.

弃用​​C​​样式数组.

​extern(C++)​​正确混杂​​常​​非针模板参数

禁用​​objc​​的​​.offsetof和.tupleof​

函数参数,可支持​​用定属​​.变量也可有​​用定属​​.

83

要链接​​C++​​代码,要知道​​abi平台​​.

弃用​​-gc​

实现新​​C++​​混杂语法.

pragma(linkerDirective, "/alternatename:_pWeakValue=_pDefaultWeakValue");

链接器指令.发送到目标文件.

正确构造​​部分构造​​对象.因此​​构造器与析构器​​是协变的.

​__traits(getTargetInfo, "键")​​取编译目标信息.

​dub​​构建选项:​​buildOptions "betterC"​​.支持​​更好C​​.

84

可从​​__traits​​直接创建别名.​​alias newWay = __traits(getMember, Foo, "a");​​,这样更简洁.

​check=[assert|bounds|in|invariant|out|switch(切换默认值)][=[on|off]]​​,加上开关,覆盖​​-boundscheck,-release和-unittest​

添加​​-checkaction=D|C|halt​​,断言失败后动作.

​-color​​始终彩色输出.

用​​-mixin​​输出生成的​​插件代码​​.

弃用无效的二进制文字​​0b​

弃用​​extern(Pascal)​

过时​​绕过​​私有导入.

​POSIX​​上正确混杂模板.

85

​-verrors=context​​错误消息中,显示有问题行.​​cast​​不再生成隐式构造函数调用,仅当​​cast(S)​​调用时,生成隐藏构造调用.

​-preview和-revert​​加入预览开关.

​dip25​​密封,​​dip1000​​域指针,​​1008​​为​​@nogc​​.

默认启用预览,要通过所有​​持续集成​​.

​-revert​​退出该功能.​​-transition​​表示过度特征.

> dmd -preview=help
> dmd -revert=help
> dmd -transition=help

有帮助页面.建议与​​窗口​​​对接用​​WCHAR​

86

不能在聚集内私有导入

生成的​​opEquals​​比​​别名本​​的​​opEquals​​优先级更高.

实现​​复制构造函数​​.​​this(非默认引用参数,默认参数...)​​.专门针对​​构​​,显式初化,按值传递时.按值返回,且不能​​nrvo​​优化时用复制构造.当定义​​复制构造​​后,禁用​​后传输​​.

复制构造可用​​不同限定符​​重载.可以用​​this(ref return scope inout A rhs) immutable {}​​,​​inout​​替换多个.

无显式复制&&(有一非联具​​复制​​构造)则隐式生成​​复制构造​​.否则​​@禁止​​.​​联​​字段不能有​​复制​​构造,否则报错.定义​​复制构造​​则非​​pod​​.

弃用​​16进制串​​.

可按引用返回​​函数字面​​.如​​alias add2 = ref () => x += 2;​​.

​-lowmem​​,低内存.

​getMember,getOverloads​​特征,可访问​​私有成员​​.

​import std;​​可一次导入所有.​​搞个常用​​就行了嘛.

​dub​​除了​​-m32mscoff​​和​​-m64​​用​​OPTLINK​​,其他不用了.用​​dub --arch=x86​​也可以打开.

87

新语法:​​alias NewStyleFunAlias = int(string);​​声明函数类型别名.新语法可使用函数模板类型的​​快捷方式​​.如​​alias SetterProto(T) = void(T t);​​.

​-preview=markdown​​,​​ddoc​​可支持​​md​​.

弃用​​域​​限制​​类​​的​​声明​​.但允许​​构​​.

弃用​​this和super​​作类型

​is(sym==module)和is(sym==package)​​,判断符号是​​模块/包​​.​​__traits(isModule, sym) 和 __traits(isPackage, sym)​​也同样工作.

本地模板现可​​接收​​本地符号

弃用​​static this()​​中初化​​不变​​.可前面加​​共享​​.

全默认构构造算错误.

模板别名,可用​​基本类型​​实例化.​​类型比别名​​匹配优先

32位​​Linux​​现在用​​XMM​​,而非​​x87​​.

用户可用​​-preview=dip1000​​.

88

弃用部分重载,现在用​​opUnary+串​​.

​匿名​​联中成员不再调用​​后传输/析构器​​.

89

​IsExpression​​现在正确匹配​​const​​,​​inout​​,和​​shared.​

改名​​optlink.exe​

90

可从​​懒​​取闭包.

92

支持​​gnu​​的​​abi​​标签

​-preview=dip25​​已类似默认

​ob​​用来保证​​有效​​内存对象.

现在有等价于​​scope const​​的​​in​​了.

93

​std.traits.isCopyable​​是可复制

正确检查接口实现

允许初化共享变量

加​​-vtemplates​​开关来收集和列举​​模板​​统计信息

94

添加​​__traits(child,parent,member)​

调试块中​​可抛​​.

​pragma(inline, true)​​始终内联,与​​inline​​无关.

​隐式覆盖​​报错.

限制​​向量​​隐式转换.

​ddoc​​默认支持​​Markdown​

95

改进生成​​C++​​头

模板内部触发弃用现在显示实例化跟踪,

接受​​-extern-std=20​​,​​C++20​​.

​pragma(inline, canInline("func1"))​​,这里也可为​​编译时​​.

96

不推荐同时拥有复制构造函数和生成的​​postblit(后传输)​​.​​@disable this(this)​​告诉用​​复制​​,定义​​后传输​​则用​​后传输​​,定义​​复制​​则为​​复制​​.都有,​​后传输​​优先.删除所有​​复制​​,则​​后传输​​.

​dmd​​数格输出,包含​​保护级别​​.

弃用​​按别名​​接收本地符号的本地模板

改进生成​​C++​​头文件

用​​运行时分配锁​​同步语句.

单表达式函数缩短​​函数实现​​,这样​​int foo() => 1;​​.

​libunwind​​展开堆栈.

97

弃用歧义​​?:​​与​​=​

​强​​限制包属性会覆盖​​弱​​限制

​pragma(mangle)​​现在可应用于聚合

弃用​​复和虚​​.

现在支持​​while(auto n=expression)​

已重新设计​​格式化浮点数​

搞好​​std.format​​文档了.

拆分​​std.math​

​std.sumtype​​加入标准库.

98

加别名赋值,可​​赋值​​而非​​递归​​了.

​导入C​

弃用​​(args)=>{}​​,这样:​​(args) => () { /* body */ }​​.

​-preview=dtorfields​​现在默认启用,部分产生时正确析构.

弃用可变变量作​​猜若​​.

越界,更好消息.

弃用​​类分配器​

​-target=​​交叉编译.

不默认初化​​第一联​​成员,触发错误.

​dub​​添加环境变量.