38 lines
902 B
C
Raw Normal View History

2001-01-01 00:00:00 +01:00
// Copyright (c) 2002 Microsoft Corporation
//
// File: init.h
//
// Synopsis: Declares an initialization guard
// to ensure that all resources are freed
//
// History: 03/26/2002 JeffJon Created
#ifndef __CYSINIT_H
#define __CYSINIT_H
// For an explanation of the initialization guard thing, see Meyers,
// Scott. "Effective C++ pp. 178-182 Addison-Wesley 1992. Basically, it
// guarantees that this library is properly initialized before any code
// that uses it is called.
class CYSInitializationGuard
{
public:
CYSInitializationGuard();
~CYSInitializationGuard();
private:
static unsigned counter;
// not defined
CYSInitializationGuard(const CYSInitializationGuard&);
const CYSInitializationGuard& operator=(const CYSInitializationGuard&);
};
static CYSInitializationGuard cysguard;
#endif // __CYSINIT_H