10#ifndef MCRL2_ATERMPP_DETAIL_FUNCTION_SYMBOL_HASH_H_
11#define MCRL2_ATERMPP_DETAIL_FUNCTION_SYMBOL_HASH_H_
39 std::hash<std::string> string_hasher;
40 std::size_t h = string_hasher(f.
name());
41 return (h ^ f.
arity());
59 inline std::size_t
operator() (
const std::string& name, std::size_t arity)
const noexcept;
80 std::hash<std::string> string_hasher;
81 std::size_t h = string_hasher(name);
87 return first == second;
92 return (symbol.name() == name) && (symbol.arity() == arity);
Stores the data for a function symbol (name, arity) pair.
const std::string & name() const noexcept
std::size_t arity() const noexcept
detail::_function_symbol::ref m_function_symbol
The shared reference to the underlying function symbol.
The main namespace for the aterm++ library.
True iff the given function symbols are equal to eachother or to the given key.
bool operator()(const _function_symbol &first, const _function_symbol &second) const noexcept
Computes the hash for given function symbol objects and for the function_symbol_key.
std::size_t operator()(const _function_symbol &symbol) const noexcept
std::size_t operator()(const atermpp::detail::_function_symbol &f) const
std::size_t operator()(const atermpp::function_symbol &f) const