From 75edd5ebf50bc7b7bc7184b5335fbecc2844ff2a Mon Sep 17 00:00:00 2001 From: Andres Noetzli Date: Wed, 29 Aug 2018 16:29:51 -0700 Subject: Improve compile times --- src/expr/node.cpp | 12 ++++++++++++ src/expr/node.h | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/expr/node.cpp b/src/expr/node.cpp index b983c81f5..33322588f 100644 --- a/src/expr/node.cpp +++ b/src/expr/node.cpp @@ -112,4 +112,16 @@ bool NodeTemplate::isConst() const { template bool NodeTemplate::isConst() const; template bool NodeTemplate::isConst() const; +template class NodeTemplate; +template class NodeTemplate; + }/* CVC4 namespace */ + +namespace std { +template class std::vector>; +template class std::vector>; +template class std::unordered_map, CVC4::NodeTemplate, CVC4::NodeHashFunction>; +template class std::unordered_map, CVC4::NodeTemplate, CVC4::TNodeHashFunction>; +template class std::map, CVC4::NodeTemplate >; +template class std::map, CVC4::NodeTemplate >; +} diff --git a/src/expr/node.h b/src/expr/node.h index 4b12c7ece..8b21c7881 100644 --- a/src/expr/node.h +++ b/src/expr/node.h @@ -1507,6 +1507,9 @@ inline Node NodeTemplate::fromExpr(const Expr& e) { return NodeManager::fromExpr(e); } +extern template class NodeTemplate; +extern template class NodeTemplate; + #ifdef CVC4_DEBUG /** * Pretty printer for use within gdb. This is not intended to be used @@ -1568,4 +1571,13 @@ static void __attribute__((used)) debugPrintRawTNode(const NodeTemplate& }/* CVC4 namespace */ +namespace std { +extern template class std::vector>; +extern template class std::vector>; +extern template class std::unordered_map, CVC4::NodeTemplate, CVC4::NodeHashFunction>; +extern template class std::unordered_map, CVC4::NodeTemplate, CVC4::TNodeHashFunction>; +extern template class std::map, CVC4::NodeTemplate >; +extern template class std::map, CVC4::NodeTemplate >; +} + #endif /* __CVC4__NODE_H */ -- cgit v1.2.3