mirror of
https://github.com/boostorg/core.git
synced 2025-05-10 07:13:54 +00:00
Sync from upstream.
This commit is contained in:
commit
b18495fe35
@ -33,7 +33,7 @@ template<class T, class N>
|
|||||||
void
|
void
|
||||||
Allocator<T, N>::deallocate(pointer ptr, size_type)
|
Allocator<T, N>::deallocate(pointer ptr, size_type)
|
||||||
{
|
{
|
||||||
if (!boost::pointer_in_range(ptr, &buffer_[0], &buffer_[N])) {
|
if (!boost::pointer_in_range(ptr, buffer_, buffer_ + N)) {
|
||||||
::operator delete(ptr);
|
::operator delete(ptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -58,6 +58,7 @@ constexpr bool pointer_in_range(const T* ptr, const T* begin, const T* end);
|
|||||||
[[`template<class T> constexpr bool pointer_in_range(const T* ptr,
|
[[`template<class T> constexpr bool pointer_in_range(const T* ptr,
|
||||||
const T* begin, T* end);`]
|
const T* begin, T* end);`]
|
||||||
[[variablelist
|
[[variablelist
|
||||||
|
[[Requires][`[begin,end)` is a valid range.]]
|
||||||
[[Returns][`true` if `ptr` is in range `[begin,end)`, otherwise `false`.]]]]]]
|
[[Returns][`true` if `ptr` is in range `[begin,end)`, otherwise `false`.]]]]]]
|
||||||
|
|
||||||
[endsect]
|
[endsect]
|
||||||
|
@ -74,7 +74,7 @@ template<class Ch> BOOST_CXX14_CONSTEXPR std::size_t find_first_of( Ch const* p_
|
|||||||
|
|
||||||
for( std::size_t j = 0; j < n; ++j )
|
for( std::size_t j = 0; j < n; ++j )
|
||||||
{
|
{
|
||||||
UCh ch = s[ j ];
|
UCh ch = static_cast<UCh>( s[ j ] );
|
||||||
|
|
||||||
if( ch >= 0 && ch < 256 )
|
if( ch >= 0 && ch < 256 )
|
||||||
{
|
{
|
||||||
@ -91,7 +91,7 @@ template<class Ch> BOOST_CXX14_CONSTEXPR std::size_t find_first_of( Ch const* p_
|
|||||||
{
|
{
|
||||||
for( std::size_t i = pos; i < n_; ++i )
|
for( std::size_t i = pos; i < n_; ++i )
|
||||||
{
|
{
|
||||||
UCh ch = p_[ i ];
|
UCh ch = static_cast<UCh>( p_[ i ] );
|
||||||
if( ch >= 0 && ch < 256 && table[ ch ] ) return i;
|
if( ch >= 0 && ch < 256 && table[ ch ] ) return i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -129,7 +129,7 @@ template<class Ch> BOOST_CXX14_CONSTEXPR std::size_t find_last_of( Ch const* p_,
|
|||||||
|
|
||||||
for( std::size_t j = 0; j < n; ++j )
|
for( std::size_t j = 0; j < n; ++j )
|
||||||
{
|
{
|
||||||
UCh ch = s[ j ];
|
UCh ch = static_cast<UCh>( s[ j ] );
|
||||||
|
|
||||||
if( ch >= 0 && ch < 256 )
|
if( ch >= 0 && ch < 256 )
|
||||||
{
|
{
|
||||||
@ -150,7 +150,7 @@ template<class Ch> BOOST_CXX14_CONSTEXPR std::size_t find_last_of( Ch const* p_,
|
|||||||
{
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
UCh ch = p_[ i ];
|
UCh ch = static_cast<UCh>( p_[ i ] );
|
||||||
|
|
||||||
if( ch >= 0 && ch < 256 && table[ ch ] ) return i;
|
if( ch >= 0 && ch < 256 && table[ ch ] ) return i;
|
||||||
|
|
||||||
@ -199,7 +199,7 @@ template<class Ch> BOOST_CXX14_CONSTEXPR std::size_t find_first_not_of( Ch const
|
|||||||
|
|
||||||
for( std::size_t j = 0; j < n; ++j )
|
for( std::size_t j = 0; j < n; ++j )
|
||||||
{
|
{
|
||||||
UCh ch = s[ j ];
|
UCh ch = static_cast<UCh>( s[ j ] );
|
||||||
|
|
||||||
if( ch >= 0 && ch < 256 )
|
if( ch >= 0 && ch < 256 )
|
||||||
{
|
{
|
||||||
@ -216,7 +216,7 @@ template<class Ch> BOOST_CXX14_CONSTEXPR std::size_t find_first_not_of( Ch const
|
|||||||
{
|
{
|
||||||
for( std::size_t i = pos; i < n_; ++i )
|
for( std::size_t i = pos; i < n_; ++i )
|
||||||
{
|
{
|
||||||
UCh ch = p_[ i ];
|
UCh ch = static_cast<UCh>( p_[ i ] );
|
||||||
if( !( ch >= 0 && ch < 256 && table[ ch ] ) ) return i;
|
if( !( ch >= 0 && ch < 256 && table[ ch ] ) ) return i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -262,7 +262,7 @@ template<class Ch> BOOST_CXX14_CONSTEXPR std::size_t find_last_not_of( Ch const*
|
|||||||
|
|
||||||
for( std::size_t j = 0; j < n; ++j )
|
for( std::size_t j = 0; j < n; ++j )
|
||||||
{
|
{
|
||||||
UCh ch = s[ j ];
|
UCh ch = static_cast<UCh>( s[ j ] );
|
||||||
|
|
||||||
if( ch >= 0 && ch < 256 )
|
if( ch >= 0 && ch < 256 )
|
||||||
{
|
{
|
||||||
@ -283,7 +283,7 @@ template<class Ch> BOOST_CXX14_CONSTEXPR std::size_t find_last_not_of( Ch const*
|
|||||||
{
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
UCh ch = p_[ i ];
|
UCh ch = static_cast<UCh>( p_[ i ] );
|
||||||
|
|
||||||
if( !( ch >= 0 && ch < 256 && table[ ch ] ) ) return i;
|
if( !( ch >= 0 && ch < 256 && table[ ch ] ) ) return i;
|
||||||
|
|
||||||
@ -381,7 +381,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<class End> BOOST_CXX14_CONSTEXPR basic_string_view( Ch const* first, End last,
|
template<class End> BOOST_CXX14_CONSTEXPR basic_string_view( Ch const* first, End last,
|
||||||
typename boost::enable_if<boost::core::detail::is_same<End, Ch const*> >::type* = 0 ) BOOST_NOEXCEPT: p_( first ), n_( last - first )
|
typename boost::enable_if<boost::core::detail::is_same<End, Ch const*> >::type* = 0 ) BOOST_NOEXCEPT: p_( first ), n_( static_cast<size_type>( last - first ) )
|
||||||
{
|
{
|
||||||
BOOST_ASSERT( last - first >= 0 );
|
BOOST_ASSERT( last - first >= 0 );
|
||||||
}
|
}
|
||||||
@ -681,7 +681,7 @@ public:
|
|||||||
|
|
||||||
Ch const* r = traits_type::find( data() + pos, size() - pos, c );
|
Ch const* r = traits_type::find( data() + pos, size() - pos, c );
|
||||||
|
|
||||||
return r? r - data(): npos;
|
return r? static_cast<size_type>( r - data() ): npos;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_CXX14_CONSTEXPR size_type find( Ch const* s, size_type pos, size_type n ) const BOOST_NOEXCEPT
|
BOOST_CXX14_CONSTEXPR size_type find( Ch const* s, size_type pos, size_type n ) const BOOST_NOEXCEPT
|
||||||
@ -696,11 +696,11 @@ public:
|
|||||||
|
|
||||||
for( ;; )
|
for( ;; )
|
||||||
{
|
{
|
||||||
p = traits_type::find( p, last - p, s[0] );
|
p = traits_type::find( p, static_cast<size_type>( last - p ), s[0] );
|
||||||
|
|
||||||
if( p == 0 ) break;
|
if( p == 0 ) break;
|
||||||
|
|
||||||
if( traits_type::compare( p + 1, s + 1, n - 1 ) == 0 ) return p - data();
|
if( traits_type::compare( p + 1, s + 1, n - 1 ) == 0 ) return static_cast<size_type>( p - data() );
|
||||||
|
|
||||||
++p;
|
++p;
|
||||||
}
|
}
|
||||||
@ -1193,7 +1193,7 @@ public:
|
|||||||
template<class Ch> std::basic_ostream<Ch>& operator<<( std::basic_ostream<Ch>& os, basic_string_view<Ch> str )
|
template<class Ch> std::basic_ostream<Ch>& operator<<( std::basic_ostream<Ch>& os, basic_string_view<Ch> str )
|
||||||
{
|
{
|
||||||
Ch const* p = str.data();
|
Ch const* p = str.data();
|
||||||
std::streamsize n = str.size();
|
std::streamsize n = static_cast<std::streamsize>( str.size() );
|
||||||
|
|
||||||
std::streamsize m = os.width();
|
std::streamsize m = os.width();
|
||||||
|
|
||||||
|
@ -153,6 +153,7 @@ inline void no_throw_failed_impl(const char* expr, const char* what, const char*
|
|||||||
#elif defined(__GNUC__) && !(defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 406
|
#elif defined(__GNUC__) && !(defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 406
|
||||||
# pragma GCC diagnostic push
|
# pragma GCC diagnostic push
|
||||||
# pragma GCC diagnostic ignored "-Wsign-compare"
|
# pragma GCC diagnostic ignored "-Wsign-compare"
|
||||||
|
# pragma GCC diagnostic ignored "-Wsign-conversion"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// specialize test output for char pointers to avoid printing as cstring
|
// specialize test output for char pointers to avoid printing as cstring
|
||||||
|
@ -351,8 +351,10 @@ private:
|
|||||||
detail::span_store<T, E> s_;
|
detail::span_store<T, E> s_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(BOOST_NO_CXX17_INLINE_VARIABLES)
|
||||||
template<class T, std::size_t E>
|
template<class T, std::size_t E>
|
||||||
constexpr std::size_t span<T, E>::extent;
|
constexpr std::size_t span<T, E>::extent;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cpp_deduction_guides
|
#ifdef __cpp_deduction_guides
|
||||||
template<class I, class L>
|
template<class I, class L>
|
||||||
|
@ -25,6 +25,15 @@ local warnings-as-errors-off =
|
|||||||
"-<toolset>gcc:<warnings-as-errors>on"
|
"-<toolset>gcc:<warnings-as-errors>on"
|
||||||
"-<toolset>clang:<warnings-as-errors>on" ;
|
"-<toolset>clang:<warnings-as-errors>on" ;
|
||||||
|
|
||||||
|
local pedantic-errors = <warnings>pedantic
|
||||||
|
<toolset>gcc:<cxxflags>"-Wconversion"
|
||||||
|
<toolset>gcc:<cxxflags>"-Wsign-conversion"
|
||||||
|
<toolset>clang:<cxxflags>"-Wconversion"
|
||||||
|
<toolset>clang:<cxxflags>"-Wsign-conversion"
|
||||||
|
<toolset>msvc:<warnings-as-errors>on
|
||||||
|
<toolset>gcc:<warnings-as-errors>on
|
||||||
|
<toolset>clang:<warnings-as-errors>on ;
|
||||||
|
|
||||||
# quick test (for CI)
|
# quick test (for CI)
|
||||||
run quick.cpp ;
|
run quick.cpp ;
|
||||||
|
|
||||||
@ -37,7 +46,8 @@ compile addressof_constexpr_test.cpp ;
|
|||||||
compile-fail addressof_fail_rvalue.cpp
|
compile-fail addressof_fail_rvalue.cpp
|
||||||
: $(warnings-as-errors-off) ;
|
: $(warnings-as-errors-off) ;
|
||||||
|
|
||||||
run checked_delete_test.cpp ;
|
run checked_delete_test.cpp
|
||||||
|
: : : $(pedantic-errors) ;
|
||||||
compile-fail checked_delete_fail.cpp
|
compile-fail checked_delete_fail.cpp
|
||||||
: $(warnings-as-errors-off) ;
|
: $(warnings-as-errors-off) ;
|
||||||
compile-fail checked_delete_fail2.cpp
|
compile-fail checked_delete_fail2.cpp
|
||||||
@ -104,13 +114,6 @@ run visit_each_test.cpp ;
|
|||||||
|
|
||||||
run get_pointer_test.cpp ;
|
run get_pointer_test.cpp ;
|
||||||
|
|
||||||
local pedantic-errors = <warnings>pedantic
|
|
||||||
<toolset>gcc:<cxxflags>"-Wconversion"
|
|
||||||
<toolset>clang:<cxxflags>"-Wconversion"
|
|
||||||
<toolset>msvc:<warnings-as-errors>on
|
|
||||||
<toolset>gcc:<warnings-as-errors>on
|
|
||||||
<toolset>clang:<warnings-as-errors>on ;
|
|
||||||
|
|
||||||
run lightweight_test_test.cpp
|
run lightweight_test_test.cpp
|
||||||
: : : $(pedantic-errors) ;
|
: : : $(pedantic-errors) ;
|
||||||
run lightweight_test_test.cpp : : :
|
run lightweight_test_test.cpp : : :
|
||||||
@ -337,33 +340,51 @@ run type_name_test.cpp ;
|
|||||||
|
|
||||||
run snprintf_test.cpp ;
|
run snprintf_test.cpp ;
|
||||||
|
|
||||||
run sv_types_test.cpp ;
|
run sv_types_test.cpp
|
||||||
run sv_construct_test.cpp ;
|
: : : $(pedantic-errors) ;
|
||||||
run sv_iteration_test.cpp ;
|
run sv_construct_test.cpp
|
||||||
run sv_element_access_test.cpp ;
|
: : : $(pedantic-errors) ;
|
||||||
run sv_modifiers_test.cpp ;
|
run sv_iteration_test.cpp
|
||||||
run sv_copy_test.cpp ;
|
: : : $(pedantic-errors) ;
|
||||||
run sv_substr_test.cpp ;
|
run sv_element_access_test.cpp
|
||||||
run sv_compare_test.cpp ;
|
: : : $(pedantic-errors) ;
|
||||||
run sv_starts_with_test.cpp ;
|
run sv_modifiers_test.cpp
|
||||||
run sv_ends_with_test.cpp ;
|
: : : $(pedantic-errors) ;
|
||||||
run sv_find_test.cpp ;
|
run sv_copy_test.cpp
|
||||||
run sv_rfind_test.cpp ;
|
: : : $(pedantic-errors) ;
|
||||||
|
run sv_substr_test.cpp
|
||||||
|
: : : $(pedantic-errors) ;
|
||||||
|
run sv_compare_test.cpp
|
||||||
|
: : : $(pedantic-errors) ;
|
||||||
|
run sv_starts_with_test.cpp
|
||||||
|
: : : $(pedantic-errors) ;
|
||||||
|
run sv_ends_with_test.cpp
|
||||||
|
: : : $(pedantic-errors) ;
|
||||||
|
run sv_find_test.cpp
|
||||||
|
: : : $(pedantic-errors) ;
|
||||||
|
run sv_rfind_test.cpp
|
||||||
|
: : : $(pedantic-errors) ;
|
||||||
run sv_find_first_of_test.cpp
|
run sv_find_first_of_test.cpp
|
||||||
: : : <toolset>gcc-4.4:<cxxflags>-Wno-type-limits ;
|
: : : $(pedantic-errors) <toolset>gcc-4.4:<cxxflags>-Wno-type-limits ;
|
||||||
run sv_find_last_of_test.cpp
|
run sv_find_last_of_test.cpp
|
||||||
: : : <toolset>gcc-4.4:<cxxflags>-Wno-type-limits ;
|
: : : $(pedantic-errors) <toolset>gcc-4.4:<cxxflags>-Wno-type-limits ;
|
||||||
run sv_find_first_not_of_test.cpp
|
run sv_find_first_not_of_test.cpp
|
||||||
: : : <toolset>gcc-4.4:<cxxflags>-Wno-type-limits ;
|
: : : $(pedantic-errors) <toolset>gcc-4.4:<cxxflags>-Wno-type-limits ;
|
||||||
run sv_find_last_not_of_test.cpp
|
run sv_find_last_not_of_test.cpp
|
||||||
: : : <toolset>gcc-4.4:<cxxflags>-Wno-type-limits ;
|
: : : $(pedantic-errors) <toolset>gcc-4.4:<cxxflags>-Wno-type-limits ;
|
||||||
run sv_contains_test.cpp ;
|
run sv_contains_test.cpp
|
||||||
run sv_eq_test.cpp ;
|
: : : $(pedantic-errors) ;
|
||||||
run sv_lt_test.cpp ;
|
run sv_eq_test.cpp
|
||||||
run sv_stream_insert_test.cpp ;
|
: : : $(pedantic-errors) ;
|
||||||
run sv_conversion_test.cpp ;
|
run sv_lt_test.cpp
|
||||||
run sv_conversion_test2.cpp /boost/utility//boost_utility : ;
|
: : : $(pedantic-errors) ;
|
||||||
run sv_common_reference_test.cpp ;
|
run sv_stream_insert_test.cpp
|
||||||
|
: : : $(pedantic-errors) ;
|
||||||
|
run sv_conversion_test.cpp
|
||||||
|
: : : $(pedantic-errors) ;
|
||||||
|
run sv_conversion_test2.cpp : ;
|
||||||
|
run sv_common_reference_test.cpp
|
||||||
|
: : : $(pedantic-errors) ;
|
||||||
compile sv_common_reference_test2.cpp ;
|
compile sv_common_reference_test2.cpp ;
|
||||||
compile sv_windows_h_test.cpp ;
|
compile sv_windows_h_test.cpp ;
|
||||||
compile-fail sv_nullptr_fail.cpp
|
compile-fail sv_nullptr_fail.cpp
|
||||||
|
@ -494,7 +494,7 @@ int main()
|
|||||||
|
|
||||||
for( int i = 0; i < 256; ++i )
|
for( int i = 0; i < 256; ++i )
|
||||||
{
|
{
|
||||||
str[ i ] = static_cast< unsigned char >( i );
|
str[ i ] = static_cast<char>( static_cast< unsigned char >( i ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::core::string_view sv( str, 256 );
|
boost::core::string_view sv( str, 256 );
|
||||||
@ -503,22 +503,22 @@ int main()
|
|||||||
|
|
||||||
std::string str2( sv.data(), sv.size() );
|
std::string str2( sv.data(), sv.size() );
|
||||||
|
|
||||||
for( int i = 0; i < 256; ++i )
|
for( std::size_t i = 0; i < 256; ++i )
|
||||||
{
|
{
|
||||||
std::string str3( str2 );
|
std::string str3( str2 );
|
||||||
|
|
||||||
str3[ i ] = ~str3[ i ];
|
str3[ i ] = static_cast<char>( ~str3[ i ] );
|
||||||
|
|
||||||
BOOST_TEST_EQ( sv.find_first_not_of( str3 ), i );
|
BOOST_TEST_EQ( sv.find_first_not_of( str3 ), i );
|
||||||
}
|
}
|
||||||
|
|
||||||
std::reverse( str, str + 256 );
|
std::reverse( str, str + 256 );
|
||||||
|
|
||||||
for( int i = 0; i < 256; ++i )
|
for( std::size_t i = 0; i < 256; ++i )
|
||||||
{
|
{
|
||||||
std::string str3( str2 );
|
std::string str3( str2 );
|
||||||
|
|
||||||
str3[ i ] = ~str3[ i ];
|
str3[ i ] = static_cast<char>( ~str3[ i ] );
|
||||||
|
|
||||||
BOOST_TEST_EQ( sv.find_first_not_of( str3 ), 255 - i );
|
BOOST_TEST_EQ( sv.find_first_not_of( str3 ), 255 - i );
|
||||||
}
|
}
|
||||||
@ -538,22 +538,22 @@ int main()
|
|||||||
|
|
||||||
std::wstring str2( sv.data(), sv.size() );
|
std::wstring str2( sv.data(), sv.size() );
|
||||||
|
|
||||||
for( int i = 0; i < 256; ++i )
|
for( std::size_t i = 0; i < 256; ++i )
|
||||||
{
|
{
|
||||||
std::wstring str3( str2 );
|
std::wstring str3( str2 );
|
||||||
|
|
||||||
str3[ i ] = ~str3[ i ];
|
str3[ i ] = static_cast<wchar_t>( ~str3[ i ] );
|
||||||
|
|
||||||
BOOST_TEST_EQ( sv.find_first_not_of( str3 ), i );
|
BOOST_TEST_EQ( sv.find_first_not_of( str3 ), i );
|
||||||
}
|
}
|
||||||
|
|
||||||
std::reverse( str, str + 256 );
|
std::reverse( str, str + 256 );
|
||||||
|
|
||||||
for( int i = 0; i < 256; ++i )
|
for( std::size_t i = 0; i < 256; ++i )
|
||||||
{
|
{
|
||||||
std::wstring str3( str2 );
|
std::wstring str3( str2 );
|
||||||
|
|
||||||
str3[ i ] = ~str3[ i ];
|
str3[ i ] = static_cast<wchar_t>( ~str3[ i ] );
|
||||||
|
|
||||||
BOOST_TEST_EQ( sv.find_first_not_of( str3 ), 255 - i );
|
BOOST_TEST_EQ( sv.find_first_not_of( str3 ), 255 - i );
|
||||||
}
|
}
|
||||||
|
@ -426,14 +426,14 @@ int main()
|
|||||||
|
|
||||||
for( int i = 0; i < 256; ++i )
|
for( int i = 0; i < 256; ++i )
|
||||||
{
|
{
|
||||||
str[ i ] = static_cast< unsigned char >( i );
|
str[ i ] = static_cast<char>( static_cast< unsigned char >( i ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::core::string_view sv( str, 256 );
|
boost::core::string_view sv( str, 256 );
|
||||||
|
|
||||||
for( int i = 0; i < 256; ++i )
|
for( int i = 0; i < 256; ++i )
|
||||||
{
|
{
|
||||||
std::string needle( 12, static_cast< unsigned char >( i ) );
|
std::string needle( 12, static_cast<char>( static_cast< unsigned char >( i ) ) );
|
||||||
BOOST_TEST_EQ( sv.find_first_of( needle ), i );
|
BOOST_TEST_EQ( sv.find_first_of( needle ), i );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -441,7 +441,7 @@ int main()
|
|||||||
|
|
||||||
for( int i = 0; i < 256; ++i )
|
for( int i = 0; i < 256; ++i )
|
||||||
{
|
{
|
||||||
std::string needle( 12, static_cast< unsigned char >( i ) );
|
std::string needle( 12, static_cast<char>( static_cast< unsigned char >( i ) ) );
|
||||||
BOOST_TEST_EQ( sv.find_first_of( needle ), 255 - i );
|
BOOST_TEST_EQ( sv.find_first_of( needle ), 255 - i );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -494,7 +494,7 @@ int main()
|
|||||||
|
|
||||||
for( int i = 0; i < 256; ++i )
|
for( int i = 0; i < 256; ++i )
|
||||||
{
|
{
|
||||||
str[ i ] = static_cast< unsigned char >( i );
|
str[ i ] = static_cast<char>( static_cast< unsigned char >( i ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::core::string_view sv( str, 256 );
|
boost::core::string_view sv( str, 256 );
|
||||||
@ -503,22 +503,22 @@ int main()
|
|||||||
|
|
||||||
std::string str2( sv.data(), sv.size() );
|
std::string str2( sv.data(), sv.size() );
|
||||||
|
|
||||||
for( int i = 0; i < 256; ++i )
|
for( std::size_t i = 0; i < 256; ++i )
|
||||||
{
|
{
|
||||||
std::string str3( str2 );
|
std::string str3( str2 );
|
||||||
|
|
||||||
str3[ i ] = ~str3[ i ];
|
str3[ i ] = static_cast<char>( ~str3[ i ] );
|
||||||
|
|
||||||
BOOST_TEST_EQ( sv.find_last_not_of( str3 ), i );
|
BOOST_TEST_EQ( sv.find_last_not_of( str3 ), i );
|
||||||
}
|
}
|
||||||
|
|
||||||
std::reverse( str, str + 256 );
|
std::reverse( str, str + 256 );
|
||||||
|
|
||||||
for( int i = 0; i < 256; ++i )
|
for( std::size_t i = 0; i < 256; ++i )
|
||||||
{
|
{
|
||||||
std::string str3( str2 );
|
std::string str3( str2 );
|
||||||
|
|
||||||
str3[ i ] = ~str3[ i ];
|
str3[ i ] = static_cast<char>( ~str3[ i ] );
|
||||||
|
|
||||||
BOOST_TEST_EQ( sv.find_last_not_of( str3 ), 255 - i );
|
BOOST_TEST_EQ( sv.find_last_not_of( str3 ), 255 - i );
|
||||||
}
|
}
|
||||||
@ -538,22 +538,22 @@ int main()
|
|||||||
|
|
||||||
std::wstring str2( sv.data(), sv.size() );
|
std::wstring str2( sv.data(), sv.size() );
|
||||||
|
|
||||||
for( int i = 0; i < 256; ++i )
|
for( std::size_t i = 0; i < 256; ++i )
|
||||||
{
|
{
|
||||||
std::wstring str3( str2 );
|
std::wstring str3( str2 );
|
||||||
|
|
||||||
str3[ i ] = ~str3[ i ];
|
str3[ i ] = static_cast<wchar_t>( ~str3[ i ] );
|
||||||
|
|
||||||
BOOST_TEST_EQ( sv.find_first_not_of( str3 ), i );
|
BOOST_TEST_EQ( sv.find_first_not_of( str3 ), i );
|
||||||
}
|
}
|
||||||
|
|
||||||
std::reverse( str, str + 256 );
|
std::reverse( str, str + 256 );
|
||||||
|
|
||||||
for( int i = 0; i < 256; ++i )
|
for( std::size_t i = 0; i < 256; ++i )
|
||||||
{
|
{
|
||||||
std::wstring str3( str2 );
|
std::wstring str3( str2 );
|
||||||
|
|
||||||
str3[ i ] = ~str3[ i ];
|
str3[ i ] = static_cast<wchar_t>( ~str3[ i ] );
|
||||||
|
|
||||||
BOOST_TEST_EQ( sv.find_first_not_of( str3 ), 255 - i );
|
BOOST_TEST_EQ( sv.find_first_not_of( str3 ), 255 - i );
|
||||||
}
|
}
|
||||||
|
@ -444,14 +444,14 @@ int main()
|
|||||||
|
|
||||||
for( int i = 0; i < 256; ++i )
|
for( int i = 0; i < 256; ++i )
|
||||||
{
|
{
|
||||||
str[ i ] = static_cast< unsigned char >( i );
|
str[ i ] = static_cast<char>( static_cast< unsigned char >( i ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::core::string_view sv( str, 256 );
|
boost::core::string_view sv( str, 256 );
|
||||||
|
|
||||||
for( int i = 0; i < 256; ++i )
|
for( int i = 0; i < 256; ++i )
|
||||||
{
|
{
|
||||||
std::string needle( 12, static_cast< unsigned char >( i ) );
|
std::string needle( 12, static_cast<char>( static_cast< unsigned char >( i ) ) );
|
||||||
BOOST_TEST_EQ( sv.find_last_of( needle ), i );
|
BOOST_TEST_EQ( sv.find_last_of( needle ), i );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -459,7 +459,7 @@ int main()
|
|||||||
|
|
||||||
for( int i = 0; i < 256; ++i )
|
for( int i = 0; i < 256; ++i )
|
||||||
{
|
{
|
||||||
std::string needle( 12, static_cast< unsigned char >( i ) );
|
std::string needle( 12, static_cast<char>( static_cast< unsigned char >( i ) ) );
|
||||||
BOOST_TEST_EQ( sv.find_last_of( needle ), 255 - i );
|
BOOST_TEST_EQ( sv.find_last_of( needle ), 255 - i );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user