greenplumn CEnumSetIter 源码

  • 2022-08-18
  • 浏览 (346)

greenplumn CEnumSetIter 代码

文件路径:/src/backend/gporca/libgpos/include/gpos/common/CEnumSetIter.h

//---------------------------------------------------------------------------
//	Greenplum Database
//	Copyright (C) 2009 Greenplum, Inc.
//
//	@filename:
//		CEnumSetIter.h
//
//	@doc:
//		Implementation of iterator for enum set
//---------------------------------------------------------------------------
#ifndef GPOS_CEnumSetIter_H
#define GPOS_CEnumSetIter_H

#include "gpos/base.h"
#include "gpos/common/CBitSetIter.h"
#include "gpos/common/CEnumSet.h"

namespace gpos
{
//---------------------------------------------------------------------------
//	@class:
//		CEnumSetIter
//
//	@doc:
//		Template derived from CBitSetIter
//
//---------------------------------------------------------------------------
template <class T, ULONG sentinel_index>
class CEnumSetIter : public CBitSetIter
{
private:
public:
	CEnumSetIter<T, sentinel_index>(const CEnumSetIter<T, sentinel_index> &) =
		delete;

	// ctor
	explicit CEnumSetIter<T, sentinel_index>(
		const CEnumSet<T, sentinel_index> &enum_set)
		: CBitSetIter(enum_set)
	{
	}

	// dtor
	~CEnumSetIter<T, sentinel_index>() = default;

	// current enum
	T
	TBit() const
	{
		GPOS_ASSERT(sentinel_index > CBitSetIter::Bit() &&
					"Out of range of enum");
		return static_cast<T>(CBitSetIter::Bit());
	}

};	// class CEnumSetIter
}  // namespace gpos


#endif	// !GPOS_CEnumSetIter_H

// EOF

相关信息

greenplumn 源码目录

相关文章

greenplumn CAutoP 源码

greenplumn CAutoRef 源码

greenplumn CAutoRg 源码

greenplumn CAutoTimer 源码

greenplumn CBitSet 源码

greenplumn CBitSetIter 源码

greenplumn CBitVector 源码

greenplumn CDebugCounter 源码

greenplumn CDouble 源码

greenplumn CDynamicPtrArray 源码

0  赞