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);
}
相关推荐
鑫鑫向栄2 小时前
[蓝桥杯]取球博弈
数据结构·c++·算法·职场和发展·蓝桥杯·动态规划
三十一6143 小时前
6.4 C++作业
开发语言·c++
虾球xz5 小时前
CppCon 2014 学习: An Overview of C++11/14
开发语言·c++·学习
我漫长的孤独流浪6 小时前
C++ 11
开发语言·c++
鑫鑫向栄6 小时前
[蓝桥杯]模型染色
数据结构·c++·算法·职场和发展·蓝桥杯
DoWeixin67 小时前
【请关注】VC内存泄露的排除及处理
c++·mfc·vc++·vc
1白天的黑夜18 小时前
栈-20.有效的括号-力扣(LeetCode)
c++·算法·leetcode
whoarethenext8 小时前
OpenCV C/C++ 视频播放器 (支持调速和进度控制)
c语言·c++·opencv