diff options
Diffstat (limited to 'src/context/cdlist_forward.h')
-rw-r--r-- | src/context/cdlist_forward.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/context/cdlist_forward.h b/src/context/cdlist_forward.h new file mode 100644 index 000000000..82bc9cc15 --- /dev/null +++ b/src/context/cdlist_forward.h @@ -0,0 +1,56 @@ +/********************* */ +/*! \file cdlist_forward.h + ** \verbatim + ** Original author: mdeters + ** Major contributors: none + ** Minor contributors (to current version): none + ** This file is part of the CVC4 prototype. + ** Copyright (c) 2009, 2010 The Analysis of Computer Systems Group (ACSys) + ** Courant Institute of Mathematical Sciences + ** New York University + ** See the file COPYING in the top-level source directory for licensing + ** information.\endverbatim + ** + ** \brief This is a forward declaration header to declare the + ** CDList<> template + ** + ** This is a forward declaration header to declare the CDList<> + ** template. It's useful if you want to forward-declare CDList<> + ** without including the full cdlist.h or cdlist_context_memory.h + ** header, for example, in a public header context, or to keep + ** compile times low when only a forward declaration is needed. + ** + ** Note that all specializations of the template should be listed + ** here as well, since different specializations are defined in + ** different headers (cdlist.h and cdlist_context_memory.h). + ** Explicitly declaring both specializations here ensure that if you + ** define one, you'll get an error if you didn't include the correct + ** header (avoiding different, incompatible instantiations in + ** different compilation units). + **/ + +#include "cvc4_public.h" + +#ifndef __CVC4__CONTEXT__CDLIST_FORWARD_H +#define __CVC4__CONTEXT__CDLIST_FORWARD_H + +#include <memory> + +namespace __gnu_cxx { + template <class Key> class hash; +}/* __gnu_cxx namespace */ + +namespace CVC4 { + namespace context { + template <class T> + class ContextMemoryAllocator; + + template <class T, class Allocator = std::allocator<T> > + class CDList; + + template <class T> + class CDList<T, ContextMemoryAllocator<T> >; + }/* CVC4::context namespace */ +}/* CVC4 namespace */ + +#endif /* __CVC4__CONTEXT__CDLIST_FORWARD_H */ |