本文整理汇总了C++中FileScopePtr::getClassAliases方法的典型用法代码示例。如果您正苦于以下问题:C++ FileScopePtr::getClassAliases方法的具体用法?C++ FileScopePtr::getClassAliases怎么用?C++ FileScopePtr::getClassAliases使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FileScopePtr
的用法示例。
在下文中一共展示了FileScopePtr::getClassAliases方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: collectFunctionsAndClasses
void AnalysisResult::collectFunctionsAndClasses(FileScopePtr fs) {
for (const auto& iter : fs->getFunctions()) {
FunctionScopePtr func = iter.second;
if (!func->inPseudoMain()) {
FunctionScopePtr &funcDec = m_functionDecs[iter.first];
if (funcDec) {
if (funcDec->isSystem()) {
assert(funcDec->allowOverride());
funcDec = func;
} else if (func->isSystem()) {
assert(func->allowOverride());
} else {
auto& funcVec = m_functionReDecs[iter.first];
int sz = funcVec.size();
if (!sz) {
funcDec->setRedeclaring(sz++);
funcVec.push_back(funcDec);
}
func->setRedeclaring(sz++);
funcVec.push_back(func);
}
} else {
funcDec = func;
}
}
}
if (const auto redec = fs->getRedecFunctions()) {
for (const auto &iter : *redec) {
auto i = iter.second.begin();
auto e = iter.second.end();
auto& funcDec = m_functionDecs[iter.first];
assert(funcDec); // because the first one was in funcs above
auto& funcVec = m_functionReDecs[iter.first];
int sz = funcVec.size();
if (!sz) {
funcDec->setRedeclaring(sz++);
funcVec.push_back(funcDec);
}
while (++i != e) { // we already added the first one
(*i)->setRedeclaring(sz++);
funcVec.push_back(*i);
}
}
}
for (const auto& iter : fs->getClasses()) {
auto& clsVec = m_classDecs[iter.first];
clsVec.insert(clsVec.end(), iter.second.begin(), iter.second.end());
}
m_classAliases.insert(fs->getClassAliases().begin(),
fs->getClassAliases().end());
m_typeAliasNames.insert(fs->getTypeAliasNames().begin(),
fs->getTypeAliasNames().end());
}