使用范围来增强FUSION序列

时间:2015-12-10 09:14:17

标签: c++ c++11 boost-fusion

我正在尝试按以下方式打印struct成员:

#include <iostream>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/include/adapt_struct.hpp>

struct Node {
    int a = 4;
    double b = 2.2;
};

BOOST_FUSION_ADAPT_STRUCT(Node, a, b)

int main() {
    Node n;
    for (auto el: n) { // What do I put instead of n here?
        std::cout << el << std::endl;
    }
    return 0;
}

这当然是错误的,因为n只是struct。如何设置range for可以使用而不是n的序列?

1 个答案:

答案 0 :(得分:2)

在这种情况下,您无法使用define('Online', 2); define('Offline', 0); if ($loggedin == Online) $color = '#008000'; if ($loggedin == Offline) $color = '#FF0000'; 。它的元编程,每个成员迭代器都有自己的类型。您可以使用range-based for或手写结构进行遍历。

fusion::for_each