mirror of
https://github.com/boostorg/functional.git
synced 2025-08-01 21:44:28 +02:00
Stricter warnings for unordered and hash.
There are still warnings in hash_complex_test. [SVN r57537]
This commit is contained in:
@@ -7,9 +7,16 @@ import testing ;
|
||||
|
||||
project hash-tests
|
||||
: requirements
|
||||
<warnings>all
|
||||
<toolset>intel:<warnings>on
|
||||
<toolset>intel:<cxxflags>-strict-ansi
|
||||
<toolset>gcc:<cxxflags>"-pedantic -Wstrict-aliasing -fstrict-aliasing -Wextra -Wsign-promo -Wunused-parameter"
|
||||
<toolset>darwin:<cxxflags>"-pedantic -Wstrict-aliasing -fstrict-aliasing -Wextra -Wsign-promo -Wunused-parameter"
|
||||
<toolset>gcc:<define>_GLIBCXX_DEBUG
|
||||
<toolset>gcc:<cxxflags>-Wsign-promo
|
||||
#<toolset>gcc:<cxxflags>-Wextra
|
||||
<toolset>darwin:<define>_GLIBCXX_DEBUG
|
||||
<toolset>msvc:<warnings-as-errors>on
|
||||
<toolset>gcc:<warnings-as-errors>on
|
||||
<toolset>darwin:<warnings-as-errors>on
|
||||
;
|
||||
|
||||
test-suite functional/hash
|
||||
@@ -33,13 +40,14 @@ test-suite functional/hash
|
||||
[ run hash_deque_test.cpp ]
|
||||
[ run hash_set_test.cpp ]
|
||||
[ run hash_map_test.cpp ]
|
||||
[ run hash_complex_test.cpp ]
|
||||
[ run hash_complex_test.cpp : : : <warnings-as-errors>off ]
|
||||
[ run link_test.cpp link_test_2.cpp ]
|
||||
[ run link_ext_test.cpp link_no_ext_test.cpp ]
|
||||
[ run extensions_hpp_test.cpp ]
|
||||
[ run container_fwd_test.cpp ]
|
||||
[ compile-fail hash_no_ext_fail_test.cpp ]
|
||||
[ compile-fail namespace_fail_test.cpp ]
|
||||
# Don't want compile-fail tests to fail because of warnings.
|
||||
[ compile-fail hash_no_ext_fail_test.cpp : : : <warnings-as-errors>off ]
|
||||
[ compile-fail namespace_fail_test.cpp : : : <warnings-as-errors>off ]
|
||||
[ run hash_no_ext_macro_1.cpp ]
|
||||
[ run hash_no_ext_macro_2.cpp ]
|
||||
;
|
||||
|
@@ -12,8 +12,11 @@
|
||||
#include <boost/functional/hash.hpp>
|
||||
#include <boost/functional/hash.hpp>
|
||||
|
||||
template <class T> void ignore(T const&) {}
|
||||
|
||||
int main()
|
||||
{
|
||||
HASH_NAMESPACE::hash< int[10] > hasher;
|
||||
ignore(hasher);
|
||||
return 0;
|
||||
}
|
||||
|
@@ -197,6 +197,15 @@ namespace boost
|
||||
return x + (x >> 3);
|
||||
}
|
||||
|
||||
#if defined(BOOST_MSVC)
|
||||
#pragma warning(push)
|
||||
#if BOOST_MSVC == 1400
|
||||
#pragma warning(disable:4267) // 'argument' : conversion from 'size_t' to 'unsigned int',
|
||||
// possible loss of data
|
||||
// A misguided attempt to detect 64-bit incompatability.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||
template <class T>
|
||||
inline void hash_combine(std::size_t& seed, T& v)
|
||||
@@ -209,6 +218,10 @@ namespace boost
|
||||
seed ^= hasher(v) + 0x9e3779b9 + (seed<<6) + (seed>>2);
|
||||
}
|
||||
|
||||
#if defined(BOOST_MSVC)
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
template <class It>
|
||||
inline std::size_t hash_range(It first, It last)
|
||||
{
|
||||
|
Reference in New Issue
Block a user