Work around the clang version installed with MacOS X 10.9.
Apparently their hash tables store the hash functions in a const member, and this requires a user-supplied default constructor. Reported by Étienne Renault. * src/misc/hash.hh: Add an empty constructor to all hash functions.
This commit is contained in:
parent
0b5f63c296
commit
58878cd405
1 changed files with 24 additions and 4 deletions
|
|
@ -1,8 +1,9 @@
|
||||||
// Copyright (C) 2008, 2011 Laboratoire de Recherche et Développement
|
// -*- coding: utf-8 -*-
|
||||||
// de l'Epita (LRDE).
|
// Copyright (C) 2008, 2011, 2014 Laboratoire de Recherche et
|
||||||
|
// Développement de l'Epita (LRDE).
|
||||||
// Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de
|
// Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de
|
||||||
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
||||||
// Université Pierre et Marie Curie.
|
// Université Pierre et Marie Curie.
|
||||||
//
|
//
|
||||||
// This file is part of Spot, a model checking library.
|
// This file is part of Spot, a model checking library.
|
||||||
//
|
//
|
||||||
|
|
@ -80,6 +81,13 @@ namespace spot
|
||||||
struct ptr_hash :
|
struct ptr_hash :
|
||||||
public std::unary_function<const T*, size_t>
|
public std::unary_function<const T*, size_t>
|
||||||
{
|
{
|
||||||
|
// A default constructor is needed if the ptr_hash object is
|
||||||
|
// stored in a const member. This occur with the clang version
|
||||||
|
// installed by OS X 10.9.
|
||||||
|
ptr_hash()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
size_t operator()(const T* p) const
|
size_t operator()(const T* p) const
|
||||||
{
|
{
|
||||||
return knuth32_hash(reinterpret_cast<const char*>(p)
|
return knuth32_hash(reinterpret_cast<const char*>(p)
|
||||||
|
|
@ -97,6 +105,12 @@ namespace spot
|
||||||
public Sgi::hash<const char*>,
|
public Sgi::hash<const char*>,
|
||||||
public std::unary_function<const std::string&, size_t>
|
public std::unary_function<const std::string&, size_t>
|
||||||
{
|
{
|
||||||
|
// A default constructor is needed if the string_hash object is
|
||||||
|
// stored in a const member.
|
||||||
|
string_hash()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
size_t operator()(const std::string& s) const
|
size_t operator()(const std::string& s) const
|
||||||
{
|
{
|
||||||
// We are living dangerously. Be sure to call operator()
|
// We are living dangerously. Be sure to call operator()
|
||||||
|
|
@ -113,6 +127,12 @@ namespace spot
|
||||||
struct identity_hash:
|
struct identity_hash:
|
||||||
public std::unary_function<const T&, size_t>
|
public std::unary_function<const T&, size_t>
|
||||||
{
|
{
|
||||||
|
// A default constructor is needed if the string_hash object is
|
||||||
|
// stored in a const member.
|
||||||
|
identity_hash()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
size_t operator()(const T& s) const
|
size_t operator()(const T& s) const
|
||||||
{
|
{
|
||||||
return s;
|
return s;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue