diff --git a/ChangeLog b/ChangeLog index 514f8ccfc..fc1664658 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2005-02-04 Alexandre Duret-Lutz + * src/misc/ltstr.hh: New file. + * src/misc/Makefile.am (misc_HEADERS): Add it. + * src/tgbaalgos/emptiness_stats.hh (unsigned_statistics::stats_map_): Use char* for keys, not std::string. diff --git a/src/misc/Makefile.am b/src/misc/Makefile.am index 718071e94..40ff214ae 100644 --- a/src/misc/Makefile.am +++ b/src/misc/Makefile.am @@ -1,4 +1,4 @@ -## Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6), +## Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6), ## département Systèmes Répartis Coopératifs (SRC), Université Pierre ## et Marie Curie. ## @@ -32,6 +32,7 @@ misc_HEADERS = \ freelist.hh \ hash.hh \ hashfunc.hh \ + ltstr.hh \ minato.hh \ modgray.hh \ random.hh \ diff --git a/src/misc/ltstr.hh b/src/misc/ltstr.hh new file mode 100644 index 000000000..02f398d8c --- /dev/null +++ b/src/misc/ltstr.hh @@ -0,0 +1,52 @@ +// Copyright (C) 2005 Laboratoire d'Informatique de Paris 6 (LIP6), +// département Systèmes Répartis Coopératifs (SRC), Université Pierre +// et Marie Curie. +// +// This file is part of Spot, a model checking library. +// +// Spot is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// Spot is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +// License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Spot; see the file COPYING. If not, write to the Free +// Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +// 02111-1307, USA. + +#ifndef SPOT_MISC_LTSTR_HH +# define SPOT_MISC_LTSTR_HH + +#include + +namespace spot +{ + + /// \brief Strict Weak Ordering for \c char*. + /// \ingroup misc_tools + /// + /// This is meant to be used as a comparison functor for + /// STL \c map whose key are of type const char*. + /// + /// For instance here is how one could declare + /// a map of const state*. + /// \code + /// std::map seen; + /// \endcode + struct char_ptr_less_than: + public std::binary_function + { + bool + operator()(const char* left, const char* right) const + { + return strcmp(left, right) < 0; + } + }; +} + +#endif // SPOT_MISC_LTSTR_HH