diff --git a/include/boost/functional/hash/detail/hash_float.hpp b/include/boost/functional/hash/detail/hash_float.hpp index 9fb8168..1816c57 100644 --- a/include/boost/functional/hash/detail/hash_float.hpp +++ b/include/boost/functional/hash/detail/hash_float.hpp @@ -241,7 +241,7 @@ namespace boost template inline bool is_zero(T v) { -#if !defined(__GNUC__) +#if !defined(__GNUC__) && !defined(__clang__) return v == 0; #else // GCC's '-Wfloat-equal' will complain about comparing diff --git a/meta/explicit-failures-markup.xml b/meta/explicit-failures-markup.xml new file mode 100644 index 0000000..5f21dd0 --- /dev/null +++ b/meta/explicit-failures-markup.xml @@ -0,0 +1,90 @@ + + + + + + + + + + hash_value is not overloaded for arrays for older versions + of Visual C++. There is a work around so that + boost::hash<T[N]>, boost::hash_combine and boost::hash_range + work. + + + + + + + + + + + + + + + + + On these compilers the wrong overload of hash_value is called + when the argument is a hash function pointer. So calling + hash_value doesn't work but boost::hash does work (and it's + recommended that user never call hash_value directly so this + shouldn't be a problem). + + + + + + + + + This platform has poor support for long double so + the hash function perform poorly for values out of the range + of double or if they differ at a greater precision + that double is capable of representing. + + + + + + + + + + These examples only work on compilers with support for ADL. + It is possible to work around this, but I wanted to keep the + example code as clean as possible. + + + + + + + + It appears that Borland doesn't find friend functions defined + in a class by ADL. This is easily fixed but this example is + meant to show the typical way of customising boost::hash, not + the portable way. + + + + + + + + The test demonstrates a Borland bug - functions that aren't + in a namespace don't appear to be found by ADL. + + + + + + + + Debug containers aren't supported on Apple's version of gcc 4.2. + + + +