D语言编译器版本2.100

D编程语言的开发者发布了主要参考编译器DMD 2.100.0,它支持GNU/Linux、Windows、macOS和FreeBSD系统。 编译器代码根据免费的 BSL(Boost 软件许可证)分发。

D 是静态类型的,具有类似于 C/C++ 的语法,并提供编译语言的性能,同时借用了动态语言的一些开发效率和安全优势。 例如,它提供对关联数组、类型推断、自动内存管理、并行编程、可选垃圾收集器、模板系统、元编程组件、使用 C 库以及一些 C++ 和 Objective-C 库的能力的支持。

新版本的变化包括:

  • D1 分支中使用的旧式运算符重载已不再使用。 替换 opNeg、opAdd_r、opAddAssign 等。 来了 opUnary、opBinary、opBinaryRight 和 opOpAssign。 旧式的运算符重载已于 2019 年弃用,并且从版本 2.100 开始将引发错误。
  • 自 2018 年起,delete 关键字已被弃用。 您应该使用 destroy 或 core.memory.__delete 函数,而不是删除。
  • 已实现新的 @mustuse 属性,当代码无法处理异常时(例如,在 @nogc 块中),该属性可应用于结构体和联合类型,作为错误处理的替代方法。 如果代码中未使用标有 @mustuse 属性的表达式,编译器将生成错误。
  • 对于静态数组,允许使用“.tupleof”属性来获取数组每个元素的值序列(左值)。 void foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // 模拟 foo(1, 2, 3); 浮动[3] fa; fa.tupleof = ia.tupleof; // 简单赋值 fa = ia 会导致错误assert(fa == [1F, 2F, 3F]);

来源: opennet.ru

添加评论