2

boost::spirit::karma 中的 boost::spirit::qi::matches 等价于什么?例如,只有当布尔标志设置为真时,我才想生成一个文字“数组”。

4

1 回答 1

2

仅当属性与提供的值匹配时,才使用指定的值形式bool_来使用属性:

Live On Coliru

#include <boost/spirit/include/karma.hpp>

namespace karma = boost::spirit::karma;

int main() {
    using namespace karma;

    for (int i = 0; i < 10; ++i)
    {
        bool b = (0 == i%3);
        std::cout << format_delimited(
                (omit[bool_(true)] << "array" | omit[bool_(false) << "vector"]),
                ';',
                b
            ) << "\n";
    }

}

印刷

array;


array;


array;


array;
于 2015-05-13T16:30:55.937 回答