greenplumn CPrintablePointer 源码

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

greenplumn CPrintablePointer 代码

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

//	Copyright (C) 2017 VMware, Inc. or its affiliates.

#ifndef GPOS_CPrintablePointer_H
#define GPOS_CPrintablePointer_H

#include "gpos/io/IOstream.h"

namespace gpos
{
template <typename T>
class CPrintablePointer
{
private:
	T *m_obj;
	friend IOstream &
	operator<<(IOstream &os, CPrintablePointer p)
	{
		if (p.m_obj)
		{
			return os << *p.m_obj;
		}
		else
		{
			return os;
		}
	}

public:
	explicit CPrintablePointer(T *obj) : m_obj(obj)
	{
	}
	CPrintablePointer(const CPrintablePointer &pointer) : m_obj(pointer.m_obj)
	{
	}
};

template <typename T>
CPrintablePointer<T>
GetPrintablePtr(T *obj)
{
	return CPrintablePointer<T>(obj);
}
}  // namespace gpos
#endif	// GPOS_CPrintablePointer_H

相关信息

greenplumn 源码目录

相关文章

greenplumn CAutoP 源码

greenplumn CAutoRef 源码

greenplumn CAutoRg 源码

greenplumn CAutoTimer 源码

greenplumn CBitSet 源码

greenplumn CBitSetIter 源码

greenplumn CBitVector 源码

greenplumn CDebugCounter 源码

greenplumn CDouble 源码

greenplumn CDynamicPtrArray 源码

0  赞