mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2025-11-29 17:38:24 +08:00
63 lines
1.5 KiB
C++
63 lines
1.5 KiB
C++
// -*- C++ -*-
|
|
|
|
//===========================================================================
|
|
/**
|
|
* @file Copy_Disabled.h
|
|
*
|
|
* @author Carlos O'Ryan <coryan@uci.edu>
|
|
*/
|
|
//===========================================================================
|
|
|
|
#ifndef ACE_COPY_DISABLED_H
|
|
#define ACE_COPY_DISABLED_H
|
|
|
|
#include /**/ "ace/pre.h"
|
|
|
|
#include /**/ "ace/ACE_export.h"
|
|
|
|
#if !defined (ACE_LACKS_PRAGMA_ONCE)
|
|
# pragma once
|
|
#endif /* ACE_LACKS_PRAGMA_ONCE */
|
|
|
|
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
|
|
|
|
/**
|
|
* @class ACE_Copy_Disabled
|
|
*
|
|
* @brief Helper class to disable copy construction and assignment
|
|
*
|
|
* Classes used to control OS and other resources are not "canonical",
|
|
* i.e. they have their copy constructor and assignment operators
|
|
* disabled.
|
|
* This is often done by making the copy constructor and assignment
|
|
* operators private, effectively disallowing copying by clients of
|
|
* the class (including derived classes). If the copy constructor and
|
|
* assingment operators are left unimplemented then the class itself
|
|
* cannot make any copies of its instances, because it would result in
|
|
* link errors.
|
|
*
|
|
* To use this class simply use private inheritance:
|
|
*
|
|
* class Foo : private ACE_Copy_Disabled
|
|
* {
|
|
* // code here
|
|
* };
|
|
*/
|
|
class ACE_Export ACE_Copy_Disabled
|
|
{
|
|
public:
|
|
|
|
/// Default constructor
|
|
ACE_Copy_Disabled (void);
|
|
|
|
private:
|
|
ACE_Copy_Disabled (const ACE_Copy_Disabled &);
|
|
ACE_Copy_Disabled &operator= (const ACE_Copy_Disabled &);
|
|
};
|
|
|
|
ACE_END_VERSIONED_NAMESPACE_DECL
|
|
|
|
#include /**/ "ace/post.h"
|
|
|
|
#endif /* ACE_COPY_DISABLED_H */
|