本文整理汇总了C++中stringlist::const_iterator::substr方法的典型用法代码示例。如果您正苦于以下问题:C++ const_iterator::substr方法的具体用法?C++ const_iterator::substr怎么用?C++ const_iterator::substr使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类stringlist::const_iterator
的用法示例。
在下文中一共展示了const_iterator::substr方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getMetaData
void
Slice::ObjCGenerator::MetaDataVisitor::validate(const ContainedPtr& cont)
{
ModulePtr m = ModulePtr::dynamicCast(cont);
if(m)
{
bool error = false;
bool foundPrefix = false;
StringList meta = getMetaData(m);
StringList::const_iterator p;
for(p = meta.begin(); p != meta.end(); ++p)
{
const string prefix = "prefix:";
string name;
if(p->substr(_objcPrefix.size(), prefix.size()) == prefix)
{
foundPrefix = true;
name = trim(p->substr(_objcPrefix.size() + prefix.size()));
if(name.empty())
{
if(_history.count(*p) == 0)
{
string file = m->definitionContext()->filename();
ostringstream os;
os << _msg << " `" << *p << "'" << endl;
emitWarning(file, m->line(), os.str());
_history.insert(*p);
}
error = true;
}
else
{
if(!addModule(m, name))
{
modulePrefixError(m, *p);
}
}
}
else
{
if(_history.count(*p) == 0)
{
string file = m->definitionContext()->filename();
ostringstream os;
os << _msg << " `" << *p << "'" << endl;
emitWarning(file, m->line(), os.str());
_history.insert(*p);
}
error = true;
}
}
if(!error && !foundPrefix)
{
StringList names = splitScopedName(m->scoped());
string name;
for(StringList::const_iterator i = names.begin(); i != names.end(); ++i)
{
name += *i;
}
if(!addModule(m, name))
{
modulePrefixError(m, "");
}
}
}
}