D语言 (DLang) 2.095.0 发布,增强对 Objective-C 支持

栏目: 软件资讯 · 发布时间: 3年前

内容简介:DLang 2.095.0 版本现已发布,该版本主要是增强了对 Objective-C 的支持,增加了声明 Objective-C 协议的能力,以及整个编译器、库和工具的改进。共包括了来自 61 位贡献者的 27 个主要更改和 78 个修复程序。一些...

DLang 2.095.0 版本现已发布,该版本主要是增强了对 Objective-C 的支持,增加了声明 Objective-C 协议的能力,以及整个编译器、库和 工具 的改进。共包括了来自 61 位贡献者的 27 个主要更改和 78 个修复程序。一些亮点内容如下:

  • C ++ header 生成

一段时间以来,DMD 已经包含了通过 -CH 命令行选项从 D 源代码生成 C++ header 文件的实验性支持,以便于从 C++ 中调用 D 库。例如,给定以下 D 源文件。

cpp-ex.d

extern(C++):
struct A {
    int x;
}

void printA(ref A a) {
    import std.stdio : writeln;
    writeln(a);
}

和以下命令行: 

dmd -HC cpp-ex.d

编译器将以下内容输出到 stdout(-HCf 指定一个文件名,-HCd 指定一个目录)。

// Automatically generated by Digital Mars D Compiler

#pragma once

#include <assert.h>
#include <stddef.h>
#include <stdint.h>
#include <math.h>

#ifdef CUSTOM_D_ARRAY_TYPE
#define _d_dynamicArray CUSTOM_D_ARRAY_TYPE
#else
/// Represents a D [] array
template<typename T>
struct _d_dynamicArray
{
    size_t length;
    T *ptr;

    _d_dynamicArray() : length(0), ptr(NULL) { }

    _d_dynamicArray(size_t length_in, T *ptr_in)
        : length(length_in), ptr(ptr_in) { }

    T& operator[](const size_t idx) {
        assert(idx < length);
        return ptr[idx];
    }

    const T& operator[](const size_t idx) const {
        assert(idx < length);
        return ptr[idx];
    }
};
#endif

struct A;

struct A
{
    int32_t x;
    A() :
        x()
    {
    }
};

extern void printA(A& a);

此版本对该功能进行了许多修复和改进。需要注意的是,通过 -H、-Hf 和 -Hd 也支持生成 C headers。

  • 默认的 C ++ 标准更改

现在默认使用 C++11 标准。此外,编译器现在将接受 -extern-std=c++20。在实践中,目前唯一的影响是改变了编译时的值,__traits(getTargetInfo, "cppStd"),但将来可能会增加新的类型。

  • 改进的 Objective-C 支持

此版本通过支持 Objective-C 协议增强了 Objective-C 的兼容性。这是通过在 extern(Objective-C) 上下文中重新使用接口来实现的。此外,@optional 和 @selector 属性有助于完成这项工作。

  • 改进的 compile-time feedback

更多详情可查看更改日志:https://dlang.org/changelog/2.095.0.html

下载地址:http://downloads.dlang.org/releases/2.x/2.095.0/


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

捉虫记

捉虫记

施迎 / 清华大学出版社 / 2010-6 / 56.00元

《捉虫记:大容量Web应用性能测试与LoadRunner实战》主要讲解大容量Web性能测试的特点和方法,以及使用业内应用非常广泛的工具——Load Runner 9进行性能测试的具体技术与技巧。《捉虫记:大容量Web应用性能测试与LoadRunner实战》共17章,分为5篇。第1篇介绍软件测试的定义、方法和过程等内容:第2篇介绍Web应用、Web性能测试的分类、基本硬件知识、Web应用服务器选型、......一起来看看 《捉虫记》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具