本文整理汇总了C++中argument_type::replace方法的典型用法代码示例。如果您正苦于以下问题:C++ argument_type::replace方法的具体用法?C++ argument_type::replace怎么用?C++ argument_type::replace使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类argument_type
的用法示例。
在下文中一共展示了argument_type::replace方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: operator
result_type operator() (argument_type line)
{
// parse for our symbols
for( std::string::size_type pos = 0; (pos = line.find('$', pos)) != std::string::npos; pos++ )
{
std::string::size_type end = line.find(')', pos);
std::string::iterator it_begin = line.begin() + pos;
std::string::iterator it_end = line.begin() + end;
std::string statement = line.substr(pos + 2, end - pos - 2);
// check for commands
std::string::size_type space_pos;
if( (space_pos = statement.find_first_of(" )", 0)) != std::string::npos )
{
// space must come first
if( statement[space_pos] == ' ' )
{
// push the parser for this command
std::string command = statement.substr(0, space_pos);
parsers.push_back(parser_factory(command, symbols, parsers, input, output));
parsers.back()->operator()(line);
return true;
}
}
symbol_map::const_iterator sym = symbols.find(statement);
if( sym == symbols.end() )
throw std::runtime_error(std::string("Unknown symbol encountered: ") + statement);
line.replace(pos, end - pos + 1, sym->second);
pos++;
}
if( m_should_output )
output << line << "\n";
return true;
}