2311dC++连接与串

原文
extern(C++)函数使用在装饰名中包括参数类型的C++装饰名.但是,因为C++没有像D的T[]内置切片类型,因此C++没有有效的D切片装饰.

因此,无法编译以D切片为参数的extern(C++)函数.

为此,可按结构转换切片:

cpp 复制代码
struct DSlice(T)
{
    T* ptr;
    size_t length;
    T[] opIndex() => ptr[0 .. length];
}
DSlice!T toDslice(T)(T[] slice)
{
    return DSlice!T(slice.ptr, slice.length);
}
extern(C++) void hello(DSlice!(const(char)) arg)
{
    import std.stdio;
    writeln(arg[]);
}
void main()
{
    const(char)[] greeting = "hello";
    hello(greeting.toDslice);
}
相关推荐
ShineWinsu1 小时前
对于C++:模版初阶的解析
开发语言·c++·面试·笔试·函数··模版
Max_uuc2 小时前
【C++ 硬核】告别 Excel 生成数组:利用 constexpr 实现编译期计算查找表 (LUT)
开发语言·c++·excel
m0_748248652 小时前
C++正则表达式攻略:从基础到高级应用
java·c++·正则表达式
退休钓鱼选手2 小时前
[CommonAPI + vsomeip]通信 原理 1
c++·自动驾驶
CSDN_RTKLIB2 小时前
【字符编码】源文件编码与字符字节序列
c++
2401_838472512 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
你撅嘴真丑3 小时前
求10000 以内的阶乘 与 字符串最大跨距
数据结构·c++·算法
lingzhilab3 小时前
零知IDE—— ESP8266(ESP-12F)MESH 组网实现多设备智能家居控制系统(灯光 / 传感器 / 人体感应)
c++·ide·智能家居
小y要自律3 小时前
11 string容器 - 子串获取
c++·算法·stl
DevangLic3 小时前
【确认是否安装了 C++ 工具】
android·java·c++