gpt4 book ai didi

c++ - 当库使用模板(泛型)时,是否可以使用 Rust 的 C++ 库?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:57 25 4
gpt4 key购买 nike

当库(例如 Boost)使用模板(泛型)时,是否可以使用来自 Rust 的 C++ 库?

最佳答案

,但它可能不实用


D 编程语言是为数不多的提供某种程度的 C++ 互操作性的语言之一;您可以在 dlang 上阅读更多相关信息.

注意模板部分的限制:

Note that all instantiations used in D code must be provided by linking to C++ object code or shared libraries containing the instantiations.

这实际上意味着您必须使用 C++ 代码来实例化具有正确类型的模板,然后 D 编译器将链接到这些实例。


您可以为 Rust 做同样的事情。如果没有编译器支持,这意味着手动修改名称。在 FFI 部分,您会找到 link attribute :

#[link(name = "snappy")]
extern {
fn snappy_max_compressed_length(source_length: size_t) -> size_t;
}

它告诉编译器哪个链接库将提供符号,您还将支持 various calling conventionsno_mangle attribute .

您可能需要根据需要应用#[allow(non_snake_case)]


伺服使用bindgen为 C 和 C++ 代码生成 Rust 绑定(bind);我不清楚 C++ 支持的级别,并且有点怀疑它是否可以处理模板。

关于c++ - 当库使用模板(泛型)时,是否可以使用 Rust 的 C++ 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43660931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com