1 |
|
/****************************************************************************** |
2 |
|
* Top contributors (to current version): |
3 |
|
* Tim King, Morgan Deters, Mathias Preiner |
4 |
|
* |
5 |
|
* This file is part of the cvc5 project. |
6 |
|
* |
7 |
|
* Copyright (c) 2009-2021 by the authors listed in the file AUTHORS |
8 |
|
* in the top-level source directory and their institutional affiliations. |
9 |
|
* All rights reserved. See the file COPYING in the top-level source |
10 |
|
* directory for licensing information. |
11 |
|
* **************************************************************************** |
12 |
|
* This is a forward declaration header to declare the |
13 |
|
* CDList<> template |
14 |
|
* |
15 |
|
* It's useful if you want to forward-declare CDList<> without including the |
16 |
|
* full cdlist.h or cdlist_context_memory.h header, for example, in a public |
17 |
|
* header context, or to keep compile times low when only a forward declaration |
18 |
|
* is needed. |
19 |
|
* |
20 |
|
* Note that all specializations of the template should be listed |
21 |
|
* here as well, since different specializations are defined in |
22 |
|
* different headers (cdlist.h and cdlist_context_memory.h). |
23 |
|
* Explicitly declaring both specializations here ensure that if you |
24 |
|
* define one, you'll get an error if you didn't include the correct |
25 |
|
* header (avoiding different, incompatible instantiations in |
26 |
|
* different compilation units). |
27 |
|
*/ |
28 |
|
|
29 |
|
#include "cvc5_public.h" |
30 |
|
|
31 |
|
#ifndef CVC5__CONTEXT__CDLIST_FORWARD_H |
32 |
|
#define CVC5__CONTEXT__CDLIST_FORWARD_H |
33 |
|
|
34 |
|
#include <memory> |
35 |
|
|
36 |
|
/// \cond internals |
37 |
|
|
38 |
|
namespace cvc5 { |
39 |
|
namespace context { |
40 |
|
|
41 |
|
template <class T> |
42 |
|
class DefaultCleanUp { |
43 |
|
public: |
44 |
63012164 |
inline void operator()(T* t CVC5_UNUSED) const {} |
45 |
|
}; |
46 |
|
|
47 |
|
template <class T, class CleanUp = DefaultCleanUp<T>, class Allocator = std::allocator<T> > |
48 |
|
class CDList; |
49 |
|
|
50 |
|
/// \endcond |
51 |
|
|
52 |
|
} // namespace context |
53 |
|
} // namespace cvc5 |
54 |
|
|
55 |
|
#endif /* CVC5__CONTEXT__CDLIST_FORWARD_H */ |