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);
}
相关推荐
不爱吃炸鸡柳14 小时前
手撕哈希表(Hash Table):从原理到C++完整实现
c++·哈希算法·散列表
charlie11451419114 小时前
通用GUI编程技术——图形渲染实战(三十一)——Direct2D效果与图层:高斯模糊到毛玻璃
c++·图形渲染·gui·win32
自信1504130575914 小时前
重生之从0开始学习c++之内存管理
c++·学习
wuyoula14 小时前
全新轻量级高性能跨平台 AI聊天+AI网关桌面
服务器·开发语言·c++·人工智能
m0_7167652314 小时前
数据结构--单链表的插入、删除、查找详解
c语言·开发语言·数据结构·c++·笔记·学习·visual studio
牢姐与蒯15 小时前
c++进阶之继承
c++
yu859395815 小时前
C++ 虚拟磁盘与虚拟光驱实现
开发语言·c++
Tingjct15 小时前
C++ 多态
java·开发语言·c++
lclin_202015 小时前
大恒Galaxy SDK MFC开发(1):枚举、打开、开始_停止采集基础流程(无画面版)
c++·机器视觉·工业相机·大恒相机·galaxysdk
初圣魔门首席弟子15 小时前
bug20260415
c++·bug