mirror of
https://github.com/boostorg/functional.git
synced 2025-08-01 05:24:31 +02:00
Merge branch 'develop'
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
/*=============================================================================
|
/*=============================================================================
|
||||||
Copyright (c) 2007 Tobias Schwinger
|
Copyright (c) 2007 Tobias Schwinger
|
||||||
|
|
||||||
Use modification and distribution are subject to the Boost Software
|
Use modification and distribution are subject to the Boost Software
|
||||||
License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
http://www.boost.org/LICENSE_1_0.txt).
|
http://www.boost.org/LICENSE_1_0.txt).
|
||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
class sum
|
class sum
|
||||||
{
|
{
|
||||||
int val_sum;
|
int val_sum;
|
||||||
public:
|
public:
|
||||||
@@ -20,6 +20,12 @@ class sum
|
|||||||
operator int() const { return this->val_sum; }
|
operator int() const { return this->val_sum; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Suppress warnings about std::auto_ptr.
|
||||||
|
#if defined(__clang__)
|
||||||
|
#pragma clang diagnostic push
|
||||||
|
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
||||||
|
#endif
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
int one = 1, two = 2;
|
int one = 1, two = 2;
|
||||||
@@ -42,3 +48,6 @@ int main()
|
|||||||
return boost::report_errors();
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(__clang__)
|
||||||
|
#pragma clang diagnostic pop
|
||||||
|
#endif
|
||||||
|
@@ -21,6 +21,12 @@ class sum
|
|||||||
operator int() const { return this->val_sum; }
|
operator int() const { return this->val_sum; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Suppress warnings about std::auto_ptr.
|
||||||
|
#if defined(__clang__)
|
||||||
|
#pragma clang diagnostic push
|
||||||
|
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
||||||
|
#endif
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
int one = 1, two = 2;
|
int one = 1, two = 2;
|
||||||
@@ -44,3 +50,7 @@ int main()
|
|||||||
#endif
|
#endif
|
||||||
return boost::report_errors();
|
return boost::report_errors();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(__clang__)
|
||||||
|
#pragma clang diagnostic pop
|
||||||
|
#endif
|
||||||
|
@@ -241,7 +241,7 @@ namespace boost
|
|||||||
template <class T>
|
template <class T>
|
||||||
inline bool is_zero(T v)
|
inline bool is_zero(T v)
|
||||||
{
|
{
|
||||||
#if !defined(__GNUC__)
|
#if !defined(__GNUC__) && !defined(__clang__)
|
||||||
return v == 0;
|
return v == 0;
|
||||||
#else
|
#else
|
||||||
// GCC's '-Wfloat-equal' will complain about comparing
|
// GCC's '-Wfloat-equal' will complain about comparing
|
||||||
|
115
meta/explicit-failures-markup.xml
Normal file
115
meta/explicit-failures-markup.xml
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<explicit-failures-markup>
|
||||||
|
<!-- functional/factory -->
|
||||||
|
<library name="functional/factory">
|
||||||
|
<mark-expected-failures>
|
||||||
|
<test name="factory_with_allocator"/>
|
||||||
|
<toolset name="borland-*"/>
|
||||||
|
<note author="Tobias Schwinger">
|
||||||
|
Probably broken const conversion with that compiler.
|
||||||
|
</note>
|
||||||
|
</mark-expected-failures>
|
||||||
|
</library>
|
||||||
|
|
||||||
|
<!-- functional/forward -->
|
||||||
|
<library name="functional/foward">
|
||||||
|
<mark-unusable>
|
||||||
|
<toolset name="msvc-7.0*"/>
|
||||||
|
<toolset name="msvc-7.1*"/>
|
||||||
|
<toolset name="sun-5.*"/>
|
||||||
|
<toolset name="vacpp*"/>
|
||||||
|
<toolset name="borland-*"/>
|
||||||
|
<note author="Tobias Schwinger">
|
||||||
|
This compiler is currently not supported.
|
||||||
|
</note>
|
||||||
|
</mark-unusable>
|
||||||
|
</library>
|
||||||
|
|
||||||
|
<!-- functional/hash -->
|
||||||
|
<library name="functional/hash">
|
||||||
|
<mark-expected-failures>
|
||||||
|
<test name="hash_value_array_test"/>
|
||||||
|
<toolset name="msvc-6.5*"/>
|
||||||
|
<toolset name="msvc-7.0*"/>
|
||||||
|
<note author="Daniel James">
|
||||||
|
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.
|
||||||
|
</note>
|
||||||
|
</mark-expected-failures>
|
||||||
|
|
||||||
|
<mark-expected-failures>
|
||||||
|
<test name="hash_function_pointer_test"/>
|
||||||
|
<toolset name="msvc-6.5*"/>
|
||||||
|
<toolset name="msvc-7.0*"/>
|
||||||
|
<note refid="2" author="Daniel James"/>
|
||||||
|
</mark-expected-failures>
|
||||||
|
|
||||||
|
<mark-expected-failures>
|
||||||
|
<test name="hash_function_pointer_test"/>
|
||||||
|
<toolset name="sun-5.7"/>
|
||||||
|
<toolset name="sun-5.8"/>
|
||||||
|
<toolset name="sun-5.9"/>
|
||||||
|
<note author="Daniel James">
|
||||||
|
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).
|
||||||
|
</note>
|
||||||
|
</mark-expected-failures>
|
||||||
|
|
||||||
|
<mark-expected-failures>
|
||||||
|
<test name="hash_long_double_test"/>
|
||||||
|
<toolset name="gcc-3.4.3_sunos"/>
|
||||||
|
<toolset name="*pa_risc"/>
|
||||||
|
<note author="Daniel James">
|
||||||
|
This platform has poor support for <code>long double</code> so
|
||||||
|
the hash function perform poorly for values out of the range
|
||||||
|
of <code>double</code> or if they differ at a greater precision
|
||||||
|
that <code>double</code> is capable of representing.
|
||||||
|
</note>
|
||||||
|
</mark-expected-failures>
|
||||||
|
|
||||||
|
<mark-expected-failures>
|
||||||
|
<test name="point" />
|
||||||
|
<test name="books" />
|
||||||
|
<toolset name="msvc-6.5*"/>
|
||||||
|
<toolset name="msvc-7.0*"/>
|
||||||
|
<note author="Daniel James">
|
||||||
|
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.
|
||||||
|
</note>
|
||||||
|
</mark-expected-failures>
|
||||||
|
|
||||||
|
<mark-expected-failures>
|
||||||
|
<test name="point" />
|
||||||
|
<toolset name="borland-*"/>
|
||||||
|
<note author="Daniel James">
|
||||||
|
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.
|
||||||
|
</note>
|
||||||
|
</mark-expected-failures>
|
||||||
|
|
||||||
|
<mark-expected-failures>
|
||||||
|
<test name="hash_global_namespace_test" />
|
||||||
|
<toolset name="borland-*"/>
|
||||||
|
<note author="Daniel James">
|
||||||
|
The test demonstrates a Borland bug - functions that aren't
|
||||||
|
in a namespace don't appear to be found by ADL.
|
||||||
|
</note>
|
||||||
|
</mark-expected-failures>
|
||||||
|
|
||||||
|
<mark-expected-failures>
|
||||||
|
<test name="container_fwd_gcc_debug"/>
|
||||||
|
<toolset name="darwin-4.2"/>
|
||||||
|
<note author="Daniel James">
|
||||||
|
Debug containers aren't supported on Apple's version of gcc 4.2.
|
||||||
|
</note>
|
||||||
|
</mark-expected-failures>
|
||||||
|
</library>
|
||||||
|
</explicit-failures-markup>
|
Reference in New Issue
Block a user