IMP logo
IMP Reference Guide  2.20.0
The Integrative Modeling Platform
NonCopyable.h
Go to the documentation of this file.
1 /**
2  * \file IMP/NonCopyable.h
3  * \brief Base class for all objects that cannot be copied.
4  *
5  * Copyright 2007-2022 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPKERNEL_NON_COPYABLE_H
10 #define IMPKERNEL_NON_COPYABLE_H
11 
12 #include <IMP/kernel_config.h>
13 #include "utility_macros.h"
14 
15 IMPKERNEL_BEGIN_NAMESPACE
16 
17 //! Base class for all objects that cannot be copied.
18 /** Non-copyable classes cannot be copied, as the name implies. If you need
19  to do delayed initialization, either use an initialize method on them or
20  use a boost::scoped_ptr to allocate them on the heap.
21  */
22 class NonCopyable {
23  protected:
24  NonCopyable() {}
25 };
26 
27 IMPKERNEL_END_NAMESPACE
28 
29 #endif /* IMPKERNEL_NON_COPYABLE_H */
Base class for all objects that cannot be copied.
Definition: NonCopyable.h:22
Various general useful macros for IMP.