diff --git a/doc/qbk/main.qbk b/doc/qbk/main.qbk index 572df5d..cfe66df 100644 --- a/doc/qbk/main.qbk +++ b/doc/qbk/main.qbk @@ -100,8 +100,8 @@ of `std::string`. The iterator invalidation rules differ from those of `std::string`: -* Moving a string invalidates all iterators -* Swapping two strings invalidates all iterators +* Moving a `static_string` invalidates all iterators +* Swapping two `static_string`s invalidates all iterators [endsect] @@ -127,7 +127,7 @@ Certain features can be enabled and disabled though defining configuration macro * `BOOST_STATIC_STRING_STANDALONE`: When defined, the library is put into standalone mode. -* `BOOST_STATIC_STRING_NO_EXCEPTIONS`: When defined, exceptions and their associated checks are disabled. +* `BOOST_STATIC_STRING_NO_EXCEPTIONS`: When defined, exceptions and their associated checks are disabled. This causes violations of preconditions to result in undefined behavior. * `BOOST_STATIC_STRING_NULL_OPTIMIZATION`: When defined, the `static_string` will use the null-terminator optimization. diff --git a/include/boost/static_string/static_string.hpp b/include/boost/static_string/static_string.hpp index 1598da9..61ffc6b 100644 --- a/include/boost/static_string/static_string.hpp +++ b/include/boost/static_string/static_string.hpp @@ -2989,7 +2989,7 @@ basic_static_string(CharT(&)[N]) -> //------------------------------------------------------------------------------ #ifndef BOOST_STATIC_STRING_STANDALONE -// hash_value overload for Boost.Container_Hash +/// hash_value overload for Boost.Container_Hash template @@ -3004,11 +3004,17 @@ hash_value( } // static_string } // boost -// std::hash partial specialization for basic_static_string +/// std::hash partial specialization for basic_static_string namespace std { template - struct hash> + struct hash< +#if GENERATING_DOCUMENTATION + basic_static_string +#else + boost::static_string::basic_static_string +#endif + > { std::size_t operator()(