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);
}
相关推荐
6Hzlia16 小时前
【Hot 100 刷题计划】 LeetCode 438. 找到字符串中所有字母异位词 | C++ 滑动窗口题解
c++·算法·leetcode
kyle~16 小时前
C++---Boost库(准标准库)
开发语言·c++·机器人·ros·boost
白藏y16 小时前
【C++】muduo基础使用
开发语言·c++·muduo
我不是懒洋洋17 小时前
【数据结构】单链表专题(详细代码及配图)
c语言·数据结构·c++·算法·visual studio
j_xxx404_17 小时前
蓝桥杯--搜索(DFS基础回溯法,剪枝,记忆化搜索)
数据结构·c++·算法·蓝桥杯·深度优先·图论
王璐WL17 小时前
【C++】vector 在OJ中的使用
开发语言·c++
knighthood200117 小时前
VTK/PCL点云可视化:解决加载后需要手动缩放的问题
c++·pcl
unityのkiven17 小时前
如何通过DirectShow用C++实现PTZ相机的控制?
开发语言·c++·数码相机
实心儿儿17 小时前
C++ —— C++11
开发语言·c++
小辉同志17 小时前
17. 电话号码的字母组合
c++·算法·leetcode·深度优先