如何使用融合的dtype做一个ctypedef



>我有以下类型定义

ctypedef fused sa_t:
np.int32_t
np.int64_t

在带有sa_t参数的函数中,我有以下声明

cdef vector[pair[sa_t, sa_t]] count

我想让pair[sa_t, sa_t]更容易获得。

但是,我无法在函数中执行ctypedef,并且我尝试在外部执行操作也不起作用。

以下演示工作正常(Cython 版本 0.29.13),它给你一些提示吗?

from libcpp.vector cimport vector
from libcpp.pair cimport pair
cimport numpy as np
ctypedef fused sa_t:
np.int32_t
np.int64_t

ctypedef pair[sa_t, sa_t] sa_pair_t
ctypedef vector[sa_pair_t] sa_pairs_t
cdef void func(sa_t value):
cdef sa_pairs_t sa_pairs
sa_pairs.push_back(pair[sa_t, sa_t](value, value))
print(sa_pairs)

func[np.int32_t](1)  # print [(1, 1)]

最新更新