本文整理汇总了C++中SymbolList::GetFirst方法的典型用法代码示例。如果您正苦于以下问题:C++ SymbolList::GetFirst方法的具体用法?C++ SymbolList::GetFirst怎么用?C++ SymbolList::GetFirst使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SymbolList
的用法示例。
在下文中一共展示了SymbolList::GetFirst方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: IfFalseThrow
void AllContainersInFileInOrderIterator::Init
(
SourceFile *pFile,
bool fIncludePartialContainers,
bool fIncludeTransientTypes
)
{
// Free the memory.
m_nra.FreeHeap();
if (pFile != NULL)
{
SymbolList *pList = pFile->GetNamespaceLevelSymbolList();
unsigned cContainers = pList->GetCount();
BCSYM_Container **ppContainer;
BCSYM_NamedRoot *pCurrent, *pContainer;
IfFalseThrow(cContainers + 1 > cContainers);
ppContainer = m_ppNext = (BCSYM_Container **)m_nra.Alloc(VBMath::Multiply(
(cContainers + 1),
sizeof(BCSYM_Container *)));
for (pCurrent = pList->GetFirst(); pCurrent; pCurrent = pCurrent->GetNextInSymbolList())
{
pContainer = pCurrent->DigThroughAlias()->PNamedRoot();
if (pContainer->IsContainer() &&
(fIncludePartialContainers || !pContainer->PContainer()->IsPartialTypeAndHasMainType()) &&
(fIncludeTransientTypes || !pContainer->IsTransientClass())
)
{
*ppContainer = pContainer->PContainer();
ppContainer++;
}
}
// Sort the list in file definition order.
extern int _cdecl SortSymbolsByLocation(const void *arg1, const void *arg2);
qsort(m_ppNext, ppContainer - m_ppNext, sizeof(BCSYM_Container *), SortSymbolsByLocation);
}
else
{
m_ppNext = NULL;
}
}
示例2:
void AllContainersInFileIterator::Init
(
CompilerFile *pFile,
bool fIncludePartialContainers,
bool fIncludeTransientSymbols
)
{
if (pFile != NULL)
{
SymbolList *pList = pFile->GetNamespaceLevelSymbolList();
m_pNext = pList->GetFirst();
}
else
{
m_pNext = NULL;
}
m_fIncludePartialContainers = fIncludePartialContainers;
m_fIncludeTransientSymbols = fIncludeTransientSymbols;
}