Cython:嵌套typedef的解决方法

2024-04-19 06:08:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用Cython来包装一些C++代码。在

c++头文件“graph.h”包含以下定义:

#include "Block.h"
template <typename graphtype> class Graph
{
public:
       typedef enum
       {
               SOURCE  = 0,
               SINK    = 1
       } termtype; // terminals
       typedef int node_id;
       typedef Block<double> Block_D;

       Graph()
}

我尝试了以下方法“图形.pyx“:

^{pr2}$

然而,这些都不管用。我发现Cython可能不支持嵌套的typedef。如果这是真的,有没有解决这个问题的方法?在

谢谢!在


Tags: 方法代码定义include头文件templateblockcython
1条回答
网友
1楼 · 发布于 2024-04-19 06:08:16

我已经使用namespace关键字获得了嵌套定义,并指定了嵌套声明。例如,如果在C++标题中有如下的名称,即{{CD2>}:

namespace MyStuff {
    struct Outer {
        struct Inner {
            int value;
        };
        Inner member;
    };
}

…你可以这样对这些结构进行加密:

^{pr2}$ <>……如果你实际上有一个C++空间中的所有东西,都是在一个名字空间中被包装的(如第二个^ { CD3>}在声明中没有^ {CD1>},它看起来更简洁的IMO)。在

我有很多现实世界中的例子:one such example is hereanother one is here。演示的示例代码最初显示为here。在

相关问题 更多 >