gpt4 book ai didi

cython - 如何在 cython 中声明一个 C++ 元组

转载 作者:行者123 更新时间:2023-12-05 04:31:03 27 4
gpt4 key购买 nike

我有一个 C++ 方法声明如下:

std::tuple<std::vector<int>, std::size_t, std::size_t> get_state(); // Should I use a struct and expose the struct instead?

我想声明一个 cython 扩展以在 Python 中连接它

cdef extern from "cpp_sources/CClass.hpp":
cdef cppclass CClass nogil:
tuple[vector[int], size_t, size_t] get_state()

不幸的是,我没有看到一个简单的导入来访问 C++ 元组。我还检查了here没有成功。

我的问题是,有没有一种简单的方法可以访问 C++ 元组?或者也许有更好的方法来访问某些元素?

(我们不关心这个确切方法的性能)

最佳答案

很遗憾,这不受支持。更普遍 variadic templates不受支持 - 这就是为什么你有 pair,但没有通用元组。

在我链接的 github 问题中,他们有自己的解决方法版本,这是我首先想到的 - 对于我实际使用的每一个 N 个参数,

template<typename T_1, ... typename T_N>
using tupleN = std::tuple<T_1, ..., TN>;

并单独导出每个 tupleN。据我所知,在此处制作通用可变参数模板并不神奇。

关于cython - 如何在 cython 中声明一个 C++ 元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71930481/

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