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);
}
相关推荐
txinyu的博客6 分钟前
C++ 模板元编程 (TMP)
开发语言·c++
dragoooon3412 分钟前
C++ 从零实现Json-Rpc 框架
开发语言·c++·rpc
三万棵雪松21 分钟前
【AI小智硬件程序(八)】
c++·人工智能·嵌入式·esp32·ai小智
王老师青少年编程36 分钟前
2025年12月GESP真题及题解(C++七级): 学习小组
c++·gesp·csp·信奥赛·七级·csp-s·提高组
迷途之人不知返38 分钟前
C++初识(2)
c++
澄澈青空~1 小时前
接续:DKOM 进程隐藏的原理
c++·安全
一眼万里*e1 小时前
如何快速学懂开源地面站
c++
m0_748250031 小时前
C++ 预处理器
开发语言·c++
爱装代码的小瓶子2 小时前
【c++进阶】c++11下类的新变化以及Lambda函数和封装器
java·开发语言·c++
m0_748250032 小时前
C++ 标准库概述
开发语言·c++