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);
}
相关推荐
机器视觉知识推荐、就业指导16 分钟前
QML 批量创建模块 【Repeater】 组件详解
前端·c++·qml
橙橙子23040 分钟前
c++柔性数组、友元、类模版
开发语言·c++·柔性数组
阳光_你好1 小时前
请详细说明opencv/c++对图片缩放
c++·opencv·计算机视觉
杰克逊的黑豹2 小时前
不再迷茫:Rust, Zig, Go 和 C
c++·rust·go
Y.O.U..2 小时前
今日八股——C++
开发语言·c++·面试
Zhichao_972 小时前
【UE5 C++课程系列笔记】33——商业化Json读写
c++·ue5
云边有个稻草人3 小时前
【C++】第八节—string类(上)——详解+代码示例
开发语言·c++·迭代器·string类·语法糖auto和范围for·string类的常用接口·operator[]
惊鸿一博3 小时前
c++ &&(通用引用)和&(左值引用)区别
开发语言·c++
nuo5342024 小时前
黑马 C++ 学习笔记
c语言·c++·笔记·学习
DARLING Zero two♡4 小时前
C++类间的 “接力棒“ 传递:继承(上)
开发语言·c++·继承·里氏替换原则