|
包括 搜索路径定义搜索要包含的文件的位置 #包括<…> 和 #包括“…” 指令
其中 要预定义的宏以及要取消定义的预定义宏
是否启用C的几个扩展中的任何一个++ 标准(例如变量和位置标记)
//下面对给定的输入文件进行预处理。 //打开文件并将其读入字符串变量 标准::ifstream 河道内( “input.cpp” ); 标准::字符串 输入 ( 标准::istreambuf_iterator (instream.rdbuf()), 标准::istreambuf_iterator ()); //模板boost::wave::cpplexer::lex_token是 //Wave库使用的标记类型。 //此标记类型是贯穿始终的中心类型之一 //库,因为它对某些人来说是一个模板参数 //并返回 //来自迭代器。 //模板boost::wave::cpplexer::lex_iterator是 //用作标记源的lexer迭代器 //预处理引擎。 在这种情况下,这是参数化的 //标记类型为。 类型定义 boost::wave::cpplexer::lex_iterator < boost::wave::cpplexer::lex_token <> > 词汇标识符类型 ; 类型定义 boost::wave::context < 标准::字符串::迭代器 , 词汇标识符类型 > 上下文类型 ; context_type ctx(input.begin(),input.end(), “输入.cpp” ); //此时,您可能需要设置 //预处理为包含路径和/或预定义宏。 ctx.add包含路径( "..." ); ctx.add_macro_definition(…); //获取预处理器迭代器并使用它们生成 //标记序列。 context_type::iterator_type first=ctx.begin(); context_type::iterator_type last=ctx.end(); //在迭代期间为您预处理输入流 //超过[第一,最后]
虽然 (第一!=最后){ 标准::cout <<(*first).get_value(); ++第一; }