boost :: spirit :: karma中boost :: spirit :: qi :: matches的等价物是什么? 例如,我想仅在布尔标志设置为true时才生成文字“数组”。
答案 0 :(得分: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;