mirror of
https://github.com/boostorg/utility.git
synced 2025-05-09 15:04:00 +00:00
Merge pull request #45 from dimztimz/develop
Implement boost hash for string_view
This commit is contained in:
commit
d4170ccdb5
@ -192,6 +192,9 @@ install:
|
||||
- git submodule update --init libs/static_assert
|
||||
- git submodule update --init libs/throw_exception
|
||||
- git submodule update --init libs/type_traits
|
||||
- git submodule update --init libs/container_hash
|
||||
- git submodule update --init libs/integer
|
||||
- git submodule update --init libs/detail
|
||||
- cp -r $TRAVIS_BUILD_DIR/* libs/utility
|
||||
- ./bootstrap.sh
|
||||
- ./b2 headers
|
||||
|
@ -36,6 +36,9 @@ install:
|
||||
- git submodule update --init libs/static_assert
|
||||
- git submodule update --init libs/throw_exception
|
||||
- git submodule update --init libs/type_traits
|
||||
- git submodule update --init libs/container_hash
|
||||
- git submodule update --init libs/integer
|
||||
- git submodule update --init libs/detail
|
||||
- xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\utility
|
||||
- cmd /c bootstrap
|
||||
- b2 -d0 headers
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <boost/detail/workaround.hpp>
|
||||
#include <boost/utility/string_view_fwd.hpp>
|
||||
#include <boost/throw_exception.hpp>
|
||||
#include <boost/container_hash/hash_fwd.hpp>
|
||||
|
||||
#include <cstddef>
|
||||
#include <stdexcept>
|
||||
@ -690,6 +691,10 @@ namespace boost {
|
||||
}
|
||||
#endif
|
||||
|
||||
template <class charT, class traits>
|
||||
std::size_t hash_value(basic_string_view<charT, traits> s) {
|
||||
return boost::hash_range(s.begin(), s.end());
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include <string>
|
||||
|
||||
#include <boost/utility/string_view.hpp>
|
||||
#include <boost/container_hash/hash.hpp>
|
||||
|
||||
#include <boost/core/lightweight_test.hpp>
|
||||
|
||||
@ -85,6 +86,14 @@ void test_remove ( const std::string &str ) {
|
||||
}
|
||||
}
|
||||
|
||||
void test_hash(const std::string& str) {
|
||||
string_view ref = str;
|
||||
BOOST_TEST(boost::hash_value(ref) == boost::hash_value(str));
|
||||
boost::hash<std::string> hstr;
|
||||
boost::hash<string_view> hsv;
|
||||
BOOST_TEST(hsv(ref) == hstr(str));
|
||||
}
|
||||
|
||||
const char *test_strings [] = {
|
||||
"",
|
||||
"1",
|
||||
@ -102,6 +111,7 @@ int main()
|
||||
test_substr ( *p );
|
||||
test_remove ( *p );
|
||||
null_tests ( *p );
|
||||
test_hash( *p );
|
||||
|
||||
p++;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user