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);
}
相关推荐
HABuo16 小时前
【linux(四)】套接字编程--基于UDP协议的客户端服务端
linux·服务器·c++·网络协议·ubuntu·udp·centos
j_xxx404_1 天前
Linux:静态链接与动态链接深度解析
linux·运维·服务器·c++·人工智能
c++之路1 天前
C++23概述
java·c++·c++23
学涯乐码堂主1 天前
有趣的“打擂台算法”
c++·算法·青少年编程·gesp
云栖梦泽1 天前
Linux内核与驱动:14.SPI子系统
linux·运维·服务器·c++
Gary Studio1 天前
安卓HAL C++基础-智能指针
开发语言·c++
还是阿落呀1 天前
基本控制结构2
c++
多思考少编码1 天前
PAT甲级真题1001 - 1005题详细题解(C++)(个人题解)
c++·python·最短路·pat·算法竞赛
极客智造1 天前
C++ 标准 IO 流全详解:cin /cout/get /getline 原理、用法、区别与避坑
c++·io
charlie1145141911 天前
嵌入式C++工程实践第20篇:GPIO 输入模式内部电路 —— 芯片是如何“听“到外部信号的
开发语言·c++·stm32·单片机