是否可以列出元组列表?
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 io和pretty-print提供输出结构的设施,因为它们是元组;即使元组中有stl容器。
(3)列表只是一个简单的例子。考虑使用异构列表,其中使用enable_if
和一些fusion / mpl算法确定类型。
答案 0 :(得分:0)
虽然不是真正的解决方案,但您仍然可以使用FUSION_ADAPT_STRUCT将struct
转换为Fusion序列。另请注意this question,其中显示了如何将IO与这种适应的结构正确集成。