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

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

内容简介: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/


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

查看所有标签

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

网络营销

网络营销

拉菲·默罕默德 / 王刊良 / 中国财政经济出版社 / 2004-10 / 65.00元

本书提供了一个将网络营销与传统营销进行整合的分析和设计框架,称之为“市场空间矩阵”,该框架贯穿本书。利用该框架可以对网络营销战略、营销手段等进行系统的分析、设计和评价。 本书还有一条脉络,即客户关系的四个阶段,这一线索是市场空间矩阵的一个维度。在客户关系的框架下对营销手段(产品、价格、渠道、促销、社区、传播、品牌)进行分析和设计,旨在将客户从认知阶段经过探索/扩展阶段快速推进到承诺阶段。 ......一起来看看 《网络营销》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试