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);
}
相关推荐
Laurence13 分钟前
C++ 引入第三方库(一):直接引入源文件
开发语言·c++·第三方库·添加·添加库·添加包·源文件
蒸汽求职1 小时前
机器人软件工程(Robotics SDE):特斯拉Optimus落地引发的嵌入式C++与感知算法人才抢夺战
大数据·c++·算法·职场和发展·机器人·求职招聘·ai-native
charlee441 小时前
最小二乘问题详解17:SFM仿真数据生成
c++·计算机视觉·sfm·数字摄影测量·无人机航测
Tanecious.2 小时前
蓝桥杯备赛:Day4-P9749 公路
c++·蓝桥杯
旖-旎2 小时前
分治(库存管理|||)(4)
c++·算法·leetcode·排序算法·快速选择算法
Tanecious.2 小时前
蓝桥杯备赛:Day3-P1102 A-B 数对
c++·蓝桥杯
Tanecious.3 小时前
蓝桥杯备赛:Day3-P1918 保龄球
c++·蓝桥杯
良木生香3 小时前
【C++初阶】:C++类和对象(下):构造函数promax & 类型转换 & static & 友元 & 内部类 & 匿名对象 & 超级优化
c语言·开发语言·c++
三雷科技4 小时前
使用 `dlopen` 动态加载 `.so` 文件
开发语言·c++·算法
旖-旎5 小时前
分治(快速选择算法)(3)
c++·算法·leetcode·排序算法·快速选择