Files
qt-creator/src/libs/cplusplus/AlreadyConsideredClassContainer.h
Przemyslaw Gorszkowski 70e3356a02 Refactoring LookupContext.h
Extracting class AlreadyConsideredClassContainer to separate file

Change-Id: If3bb89df5ce0bae87723ad4ecab7118337df0655
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2012-11-19 11:23:49 +01:00

46 lines
954 B
C++

#ifndef CPLUSPLUS_ALREADYCONSIDEREDCLASSCONTAINER_H
#define CPLUSPLUS_ALREADYCONSIDEREDCLASSCONTAINER_H
#include <QSet>
namespace CPlusPlus {
template<typename T>
class AlreadyConsideredClassContainer
{
public:
AlreadyConsideredClassContainer() : _class(0) {}
void insert(const T *item)
{
if (_container.isEmpty())
_class = item;
_container.insert(item);
}
bool contains(const T *item)
{
if (_container.contains(item))
return true;
foreach (const T *existingItem, _container) {
if (existingItem->isEqualTo(item))
return true;
}
return false;
}
void clear(const T *item)
{
if (_class != item || _container.size() == 1)
_container.clear();
}
private:
QSet<const T *> _container;
const T * _class;
};
} // namespace CPlusPlus
#endif // CPLUSPLUS_ALREADYCONSIDEREDCLASSCONTAINER_H