4 #include <boost/functional/hash.hpp>
11 struct hash<std::vector<T>> {
15 for (
const auto& t: v) boost::hash_combine(seed, h(t));
20 template<
typename... Args>
21 struct hash<boost::variant<Args...>>: boost::static_visitor<std::size_t> {
23 std::size_t operator()(
const T& t)
const {
24 return std::hash<T>()(t);
26 std::size_t operator()(
const boost::variant<Args...>& content)
const {
27 return boost::apply_visitor(*
this, content);
35 boost::hash_combine(
seed, h);
40 boost::hash_combine(
seed, std::hash<T>()(t));
43 operator std::size_t()
const {
96 struct hash<const
smtrat::expression::ExpressionContent*> {
const ExpressionContent * mContent
static uint32_t hash(uint32_t x)
Class to create the formulas for axioms.
expression::Expression Expression
std::vector< carl::Variable > variables
std::size_t operator()(const smtrat::expression::ExpressionContent *ec) const
std::size_t operator()(const smtrat::expression::BinaryExpression &ec) const
std::size_t operator()(const smtrat::expression::Expression &expr) const
std::size_t operator()(const smtrat::expression::ITEExpression &ec) const
std::size_t operator()(const smtrat::expression::NaryExpression &ec) const
std::size_t operator()(const smtrat::expression::QuantifierExpression &ec) const
std::size_t operator()(const smtrat::expression::UnaryExpression &ec) const
std::size_t operator()(const std::vector< T > &v) const
hash_combiner(std::size_t _seed=0)
hash_combiner & operator()(std::size_t h)
hash_combiner & operator()(const T &t)