几个具体实现函数:
// 声明一个静态的成员为std::ostream输出流对象指针的链表,并把其地址指针赋值为0
// 返回值为静态链表指针的地址指针
std::list<std::ostream*> **PeekStreamList (void)
{
static std::list<std::ostream*> *streams = 0;
return &streams;
}
// 获得静态链表,如果链表指针为0,则申请一个新内存
// 返回值为静态链表对象的指针
std::list<std::ostream*> *GetStreamList (void)
{
std::list<std::ostream*> **pstreams = PeekStreamList ();
if (*pstreams == 0)
{
*pstreams = new std::list<std::ostream*> ();
}
return *pstreams;
}
// 一个清理类,
struct destructor
{
~destructor ()
{
NS_LOG_FUNCTION (this);
std::list<std::ostream*> **pstreams = PeekStreamList ();
delete *pstreams;
*pstreams = 0;
}
};