递归元组 - 使用元组而不是结构列表

时间:2014-08-06 21:14:45

标签: c++ tuples

是否可以列出元组列表?

typedef std::tuple<int,node*> node;

运行时等价物是:

struct node {
  int i; 
  node* next
};

更新(1)

因为我得到了很多批评。我将扩展这个问题。最初我只是想保持简单。

(1)我更喜欢使用元组来构造。其中一个原因是我使用boost融合io,算法和元编程。结构没有那个。有关元组或等效boost :: fusion :: vector的更多信息,请参阅http://www.boost.org/doc/libs/1_55_0/libs/fusion/doc/html/fusion/quick_start.html

(2)具体来说,我使用了许多与此类似的结构:

struct SLseg{
    int      edge;         
    Point    lP;           
    Point    rP;          
    SLseg*   above;         
    SLseg*   below;        
};

我不想为每一个人写operator<<或使用继承。 boost::fusion's iopretty-print提供输出结构的设施,因为它们是元组;即使元组中有stl容器。

(3)列表只是一个简单的例子。考虑使用异构列表,其中使用enable_if和一些fusion / mpl算法确定类型。

1 个答案:

答案 0 :(得分:0)

虽然不是真正的解决方案,但您仍然可以使用FUSION_ADAPT_STRUCTstruct转换为Fusion序列。另请注意this question,其中显示了如何将IO与这种适应的结构正确集成。