mirror of
https://github.com/boostorg/utility.git
synced 2025-05-09 15:04:00 +00:00
Uses BOOST_CXX14_CONSTEXPR where applicable. Update docs accordingly.
This commit is contained in:
parent
404fea073f
commit
715ee69717
@ -151,42 +151,42 @@ Access to the individual elements (all of which are const):
|
|||||||
|
|
||||||
Modifying the `string_view` (but not the underlying data):
|
Modifying the `string_view` (but not the underlying data):
|
||||||
|
|
||||||
BOOST_CONSTEXPR void clear(); // boost extension
|
void clear(); // boost extension
|
||||||
BOOST_CONSTEXPR void remove_prefix(size_type n);
|
BOOST_CXX14_CONSTEXPR void remove_prefix(size_type n);
|
||||||
BOOST_CONSTEXPR void remove_suffix(size_type n);
|
BOOST_CXX14_CONSTEXPR void remove_suffix(size_type n);
|
||||||
BOOST_CONSTEXPR void swap(basic_string_view& s) BOOST_NOEXCEPT;
|
BOOST_CXX14_CONSTEXPR void swap(basic_string_view& s) BOOST_NOEXCEPT;
|
||||||
|
|
||||||
Searching:
|
Searching:
|
||||||
|
|
||||||
BOOST_CONSTEXPR size_type find(basic_string_view s, size_type pos = 0) const BOOST_NOEXCEPT;
|
BOOST_CXX14_CONSTEXPR size_type find(basic_string_view s, size_type pos = 0) const BOOST_NOEXCEPT;
|
||||||
BOOST_CONSTEXPR size_type find(charT c, size_type pos = 0) const BOOST_NOEXCEPT;
|
BOOST_CXX14_CONSTEXPR size_type find(charT c, size_type pos = 0) const BOOST_NOEXCEPT;
|
||||||
BOOST_CONSTEXPR size_type find(const charT* s, size_type pos, size_type n) const;
|
BOOST_CXX14_CONSTEXPR size_type find(const charT* s, size_type pos, size_type n) const;
|
||||||
BOOST_CONSTEXPR size_type find(const charT* s, size_type pos = 0) const;
|
BOOST_CXX14_CONSTEXPR size_type find(const charT* s, size_type pos = 0) const;
|
||||||
|
|
||||||
BOOST_CONSTEXPR size_type rfind(basic_string_view s, size_type pos = npos) const BOOST_NOEXCEPT;
|
BOOST_CXX14_CONSTEXPR size_type rfind(basic_string_view s, size_type pos = npos) const BOOST_NOEXCEPT;
|
||||||
BOOST_CONSTEXPR size_type rfind(charT c, size_type pos = npos) const BOOST_NOEXCEPT;
|
BOOST_CXX14_CONSTEXPR size_type rfind(charT c, size_type pos = npos) const BOOST_NOEXCEPT;
|
||||||
BOOST_CONSTEXPR size_type rfind(const charT* s, size_type pos, size_type n) const;
|
BOOST_CXX14_CONSTEXPR size_type rfind(const charT* s, size_type pos, size_type n) const;
|
||||||
BOOST_CONSTEXPR size_type rfind(const charT* s, size_type pos = npos) const;
|
BOOST_CXX14_CONSTEXPR size_type rfind(const charT* s, size_type pos = npos) const;
|
||||||
|
|
||||||
BOOST_CONSTEXPR size_type find_first_of(basic_string_view s, size_type pos = 0) const BOOST_NOEXCEPT;
|
BOOST_CXX14_CONSTEXPR size_type find_first_of(basic_string_view s, size_type pos = 0) const BOOST_NOEXCEPT;
|
||||||
BOOST_CONSTEXPR size_type find_first_of(charT c, size_type pos = 0) const BOOST_NOEXCEPT;
|
BOOST_CXX14_CONSTEXPR size_type find_first_of(charT c, size_type pos = 0) const BOOST_NOEXCEPT;
|
||||||
BOOST_CONSTEXPR size_type find_first_of(const charT* s, size_type pos, size_type n) const;
|
BOOST_CXX14_CONSTEXPR size_type find_first_of(const charT* s, size_type pos, size_type n) const;
|
||||||
BOOST_CONSTEXPR size_type find_first_of(const charT* s, size_type pos = 0) const;
|
BOOST_CXX14_CONSTEXPR size_type find_first_of(const charT* s, size_type pos = 0) const;
|
||||||
|
|
||||||
BOOST_CONSTEXPR size_type find_last_of(basic_string_view s, size_type pos = npos) const BOOST_NOEXCEPT;
|
BOOST_CXX14_CONSTEXPR size_type find_last_of(basic_string_view s, size_type pos = npos) const BOOST_NOEXCEPT;
|
||||||
BOOST_CONSTEXPR size_type find_last_of(charT c, size_type pos = npos) const BOOST_NOEXCEPT;
|
BOOST_CXX14_CONSTEXPR size_type find_last_of(charT c, size_type pos = npos) const BOOST_NOEXCEPT;
|
||||||
BOOST_CONSTEXPR size_type find_last_of(const charT* s, size_type pos, size_type n) const;
|
BOOST_CXX14_CONSTEXPR size_type find_last_of(const charT* s, size_type pos, size_type n) const;
|
||||||
BOOST_CONSTEXPR size_type find_last_of(const charT* s, size_type pos = npos) const;
|
BOOST_CXX14_CONSTEXPR size_type find_last_of(const charT* s, size_type pos = npos) const;
|
||||||
|
|
||||||
BOOST_CONSTEXPR size_type find_first_not_of(basic_string_view s, size_type pos = 0) const BOOST_NOEXCEPT;
|
BOOST_CXX14_CONSTEXPR size_type find_first_not_of(basic_string_view s, size_type pos = 0) const BOOST_NOEXCEPT;
|
||||||
BOOST_CONSTEXPR size_type find_first_not_of(charT c, size_type pos = 0) const BOOST_NOEXCEPT;
|
BOOST_CXX14_CONSTEXPR size_type find_first_not_of(charT c, size_type pos = 0) const BOOST_NOEXCEPT;
|
||||||
BOOST_CONSTEXPR size_type find_first_not_of(const charT* s, size_type pos, size_type n) const;
|
BOOST_CXX14_CONSTEXPR size_type find_first_not_of(const charT* s, size_type pos, size_type n) const;
|
||||||
BOOST_CONSTEXPR size_type find_first_not_of(const charT* s, size_type pos = 0) const;
|
BOOST_CXX14_CONSTEXPR size_type find_first_not_of(const charT* s, size_type pos = 0) const;
|
||||||
|
|
||||||
BOOST_CONSTEXPR size_type find_last_not_of(basic_string_view s, size_type pos = npos) const BOOST_NOEXCEPT;
|
BOOST_CXX14_CONSTEXPR size_type find_last_not_of(basic_string_view s, size_type pos = npos) const BOOST_NOEXCEPT;
|
||||||
BOOST_CONSTEXPR size_type find_last_not_of(charT c, size_type pos = npos) const BOOST_NOEXCEPT;
|
BOOST_CXX14_CONSTEXPR size_type find_last_not_of(charT c, size_type pos = npos) const BOOST_NOEXCEPT;
|
||||||
BOOST_CONSTEXPR size_type find_last_not_of(const charT* s, size_type pos, size_type n) const;
|
BOOST_CXX14_CONSTEXPR size_type find_last_not_of(const charT* s, size_type pos, size_type n) const;
|
||||||
BOOST_CONSTEXPR size_type find_last_not_of(const charT* s, size_type pos = npos) const;
|
BOOST_CXX14_CONSTEXPR size_type find_last_not_of(const charT* s, size_type pos = npos) const;
|
||||||
|
|
||||||
BOOST_CONSTEXPR bool starts_with(charT c) const ; // boost extension
|
BOOST_CONSTEXPR bool starts_with(charT c) const ; // boost extension
|
||||||
BOOST_CONSTEXPR bool starts_with(basic_string_view x) const ; // boost extension
|
BOOST_CONSTEXPR bool starts_with(basic_string_view x) const ; // boost extension
|
||||||
@ -198,13 +198,14 @@ String-like operations:
|
|||||||
template<class Allocator> // Only present if compiler supports C++11 explicit conversion
|
template<class Allocator> // Only present if compiler supports C++11 explicit conversion
|
||||||
explicit operator basic_string<charT, traits, Allocator>() const;
|
explicit operator basic_string<charT, traits, Allocator>() const;
|
||||||
|
|
||||||
template<class Allocator = allocator<charT> > // Default only for C++11 compilers
|
template<class Allocator = allocator<charT> > // Default only present if compiler supports
|
||||||
basic_string<charT, traits, Allocator>
|
basic_string<charT, traits, Allocator> // C++11 default template parameters
|
||||||
to_string(const Allocator& a = Allocator()) const;
|
to_string(const Allocator& a = Allocator()) const;
|
||||||
|
|
||||||
size_type copy(charT* s, size_type n, size_type pos = 0) const;
|
size_type copy(charT* s, size_type n, size_type pos = 0) const;
|
||||||
|
|
||||||
BOOST_CONSTEXPR basic_string_view substr(size_type pos, size_type n=npos) const ; // Creates new string_view
|
BOOST_CXX14_CONSTEXPR basic_string_view substr(size_type pos,
|
||||||
|
size_type n=npos) const ; // Create new string_view
|
||||||
|
|
||||||
Comparison:
|
Comparison:
|
||||||
|
|
||||||
@ -212,6 +213,16 @@ Comparison:
|
|||||||
|
|
||||||
[endsect]
|
[endsect]
|
||||||
|
|
||||||
|
[/===============]
|
||||||
|
[section Compiler Support]
|
||||||
|
[/===============]
|
||||||
|
|
||||||
|
This Boost implementation only requires a C++03 compliant compiler.
|
||||||
|
|
||||||
|
The actual Library Fundamentals specification assumes a C++14 compliant compiler, so a few features are only present if actually supported by the compiler. Boost macros such as BOOST_CONSTEXPR, BOOST_CXX14_CONSTEXPR, and BOOST_NOEXCEPT supply certain features if supported by the compiler.
|
||||||
|
|
||||||
|
[endsect]
|
||||||
|
|
||||||
[/===============]
|
[/===============]
|
||||||
[section History]
|
[section History]
|
||||||
[/===============]
|
[/===============]
|
||||||
|
@ -117,20 +117,20 @@ namespace boost {
|
|||||||
// modifiers
|
// modifiers
|
||||||
void clear() BOOST_NOEXCEPT { len_ = 0; } // Boost extension
|
void clear() BOOST_NOEXCEPT { len_ = 0; } // Boost extension
|
||||||
|
|
||||||
void remove_prefix(size_type n) {
|
BOOST_CXX14_CONSTEXPR void remove_prefix(size_type n) {
|
||||||
if ( n > len_ )
|
if ( n > len_ )
|
||||||
n = len_;
|
n = len_;
|
||||||
ptr_ += n;
|
ptr_ += n;
|
||||||
len_ -= n;
|
len_ -= n;
|
||||||
}
|
}
|
||||||
|
|
||||||
void remove_suffix(size_type n) {
|
BOOST_CXX14_CONSTEXPR void remove_suffix(size_type n) {
|
||||||
if ( n > len_ )
|
if ( n > len_ )
|
||||||
n = len_;
|
n = len_;
|
||||||
len_ -= n;
|
len_ -= n;
|
||||||
}
|
}
|
||||||
|
|
||||||
void swap(basic_string_view& s) BOOST_NOEXCEPT {
|
BOOST_CXX14_CONSTEXPR void swap(basic_string_view& s) BOOST_NOEXCEPT {
|
||||||
std::swap(ptr_, s.ptr_);
|
std::swap(ptr_, s.ptr_);
|
||||||
std::swap(len_, s.len_);
|
std::swap(len_, s.len_);
|
||||||
}
|
}
|
||||||
@ -166,7 +166,7 @@ namespace boost {
|
|||||||
return rlen;
|
return rlen;
|
||||||
}
|
}
|
||||||
|
|
||||||
basic_string_view substr(size_type pos, size_type n=npos) const {
|
BOOST_CXX14_CONSTEXPR basic_string_view substr(size_type pos, size_type n=npos) const {
|
||||||
if ( pos > size())
|
if ( pos > size())
|
||||||
BOOST_THROW_EXCEPTION( std::out_of_range ( "string_view::substr" ) );
|
BOOST_THROW_EXCEPTION( std::out_of_range ( "string_view::substr" ) );
|
||||||
if ( n == npos || pos + n > size())
|
if ( n == npos || pos + n > size())
|
||||||
@ -174,25 +174,25 @@ namespace boost {
|
|||||||
return basic_string_view ( data() + pos, n );
|
return basic_string_view ( data() + pos, n );
|
||||||
}
|
}
|
||||||
|
|
||||||
int compare(basic_string_view x) const BOOST_NOEXCEPT {
|
BOOST_CXX14_CONSTEXPR int compare(basic_string_view x) const BOOST_NOEXCEPT {
|
||||||
const int cmp = traits::compare ( ptr_, x.ptr_, (std::min)(len_, x.len_));
|
const int cmp = traits::compare ( ptr_, x.ptr_, (std::min)(len_, x.len_));
|
||||||
return cmp != 0 ? cmp : ( len_ == x.len_ ? 0 : len_ < x.len_ ? -1 : 1 );
|
return cmp != 0 ? cmp : ( len_ == x.len_ ? 0 : len_ < x.len_ ? -1 : 1 );
|
||||||
}
|
}
|
||||||
int compare(size_type pos1, size_type n1, basic_string_view x)
|
BOOST_CXX14_CONSTEXPR int compare(size_type pos1, size_type n1, basic_string_view x)
|
||||||
const BOOST_NOEXCEPT {
|
const BOOST_NOEXCEPT {
|
||||||
return substr(pos1, n1).compare(x);
|
return substr(pos1, n1).compare(x);
|
||||||
}
|
}
|
||||||
int compare(size_type pos1, size_type n1,
|
BOOST_CXX14_CONSTEXPR int compare(size_type pos1, size_type n1,
|
||||||
basic_string_view x, size_type pos2, size_type n2) const {
|
basic_string_view x, size_type pos2, size_type n2) const {
|
||||||
return substr(pos1, n1).compare(x.substr(pos2, n2));
|
return substr(pos1, n1).compare(x.substr(pos2, n2));
|
||||||
}
|
}
|
||||||
int compare(const charT* x) const {
|
BOOST_CXX14_CONSTEXPR int compare(const charT* x) const {
|
||||||
return compare(basic_string_view(x));
|
return compare(basic_string_view(x));
|
||||||
}
|
}
|
||||||
int compare(size_type pos1, size_type n1, const charT* x) const {
|
BOOST_CXX14_CONSTEXPR int compare(size_type pos1, size_type n1, const charT* x) const {
|
||||||
return substr(pos1, n1).compare(basic_string_view(x));
|
return substr(pos1, n1).compare(basic_string_view(x));
|
||||||
}
|
}
|
||||||
int compare(size_type pos1, size_type n1,
|
BOOST_CXX14_CONSTEXPR int compare(size_type pos1, size_type n1,
|
||||||
const charT* x, size_type n2) const {
|
const charT* x, size_type n2) const {
|
||||||
return substr(pos1, n1).compare(basic_string_view(x, n2));
|
return substr(pos1, n1).compare(basic_string_view(x, n2));
|
||||||
}
|
}
|
||||||
@ -215,7 +215,7 @@ namespace boost {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// find
|
// find
|
||||||
size_type find(basic_string_view s, size_type pos = 0) const BOOST_NOEXCEPT {
|
BOOST_CXX14_CONSTEXPR size_type find(basic_string_view s, size_type pos = 0) const BOOST_NOEXCEPT {
|
||||||
if (pos > size())
|
if (pos > size())
|
||||||
return npos;
|
return npos;
|
||||||
if (s.empty())
|
if (s.empty())
|
||||||
@ -224,15 +224,15 @@ namespace boost {
|
|||||||
s.cbegin (), s.cend (), traits::eq );
|
s.cbegin (), s.cend (), traits::eq );
|
||||||
return iter == this->cend () ? npos : std::distance ( this->cbegin (), iter );
|
return iter == this->cend () ? npos : std::distance ( this->cbegin (), iter );
|
||||||
}
|
}
|
||||||
size_type find(charT c, size_type pos = 0) const BOOST_NOEXCEPT
|
BOOST_CXX14_CONSTEXPR size_type find(charT c, size_type pos = 0) const BOOST_NOEXCEPT
|
||||||
{ return find(basic_string_view(&c, 1), pos); }
|
{ return find(basic_string_view(&c, 1), pos); }
|
||||||
size_type find(const charT* s, size_type pos, size_type n) const
|
BOOST_CXX14_CONSTEXPR size_type find(const charT* s, size_type pos, size_type n) const
|
||||||
{ return find(basic_string_view(s, n), pos); }
|
{ return find(basic_string_view(s, n), pos); }
|
||||||
size_type find(const charT* s, size_type pos = 0) const
|
BOOST_CXX14_CONSTEXPR size_type find(const charT* s, size_type pos = 0) const
|
||||||
{ return find(basic_string_view(s), pos); }
|
{ return find(basic_string_view(s), pos); }
|
||||||
|
|
||||||
// rfind
|
// rfind
|
||||||
size_type rfind(basic_string_view s, size_type pos = npos) const BOOST_NOEXCEPT {
|
BOOST_CXX14_CONSTEXPR size_type rfind(basic_string_view s, size_type pos = npos) const BOOST_NOEXCEPT {
|
||||||
if (len_ < s.len_)
|
if (len_ < s.len_)
|
||||||
return npos;
|
return npos;
|
||||||
if (pos > len_ - s.len_)
|
if (pos > len_ - s.len_)
|
||||||
@ -246,30 +246,30 @@ namespace boost {
|
|||||||
return npos;
|
return npos;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
size_type rfind(charT c, size_type pos = npos) const BOOST_NOEXCEPT
|
BOOST_CXX14_CONSTEXPR size_type rfind(charT c, size_type pos = npos) const BOOST_NOEXCEPT
|
||||||
{ return rfind(basic_string_view(&c, 1), pos); }
|
{ return rfind(basic_string_view(&c, 1), pos); }
|
||||||
size_type rfind(const charT* s, size_type pos, size_type n) const
|
BOOST_CXX14_CONSTEXPR size_type rfind(const charT* s, size_type pos, size_type n) const
|
||||||
{ return rfind(basic_string_view(s, n), pos); }
|
{ return rfind(basic_string_view(s, n), pos); }
|
||||||
size_type rfind(const charT* s, size_type pos = npos) const
|
BOOST_CXX14_CONSTEXPR size_type rfind(const charT* s, size_type pos = npos) const
|
||||||
{ return rfind(basic_string_view(s), pos); }
|
{ return rfind(basic_string_view(s), pos); }
|
||||||
|
|
||||||
// find_first_of
|
// find_first_of
|
||||||
size_type find_first_of(basic_string_view s, size_type pos = 0) const BOOST_NOEXCEPT {
|
BOOST_CXX14_CONSTEXPR size_type find_first_of(basic_string_view s, size_type pos = 0) const BOOST_NOEXCEPT {
|
||||||
if (pos >= len_ || s.len_ == 0)
|
if (pos >= len_ || s.len_ == 0)
|
||||||
return npos;
|
return npos;
|
||||||
const_iterator iter = std::find_first_of
|
const_iterator iter = std::find_first_of
|
||||||
(this->cbegin () + pos, this->cend (), s.cbegin (), s.cend (), traits::eq);
|
(this->cbegin () + pos, this->cend (), s.cbegin (), s.cend (), traits::eq);
|
||||||
return iter == this->cend () ? npos : std::distance ( this->cbegin (), iter );
|
return iter == this->cend () ? npos : std::distance ( this->cbegin (), iter );
|
||||||
}
|
}
|
||||||
size_type find_first_of(charT c, size_type pos = 0) const BOOST_NOEXCEPT
|
BOOST_CXX14_CONSTEXPR size_type find_first_of(charT c, size_type pos = 0) const BOOST_NOEXCEPT
|
||||||
{ return find_first_of(basic_string_view(&c, 1), pos); }
|
{ return find_first_of(basic_string_view(&c, 1), pos); }
|
||||||
size_type find_first_of(const charT* s, size_type pos, size_type n) const
|
BOOST_CXX14_CONSTEXPR size_type find_first_of(const charT* s, size_type pos, size_type n) const
|
||||||
{ return find_first_of(basic_string_view(s, n), pos); }
|
{ return find_first_of(basic_string_view(s, n), pos); }
|
||||||
size_type find_first_of(const charT* s, size_type pos = 0) const
|
BOOST_CXX14_CONSTEXPR size_type find_first_of(const charT* s, size_type pos = 0) const
|
||||||
{ return find_first_of(basic_string_view(s), pos); }
|
{ return find_first_of(basic_string_view(s), pos); }
|
||||||
|
|
||||||
// find_last_of
|
// find_last_of
|
||||||
size_type find_last_of(basic_string_view s, size_type pos = npos) const BOOST_NOEXCEPT {
|
BOOST_CXX14_CONSTEXPR size_type find_last_of(basic_string_view s, size_type pos = npos) const BOOST_NOEXCEPT {
|
||||||
if (s.len_ == 0u)
|
if (s.len_ == 0u)
|
||||||
return npos;
|
return npos;
|
||||||
if (pos >= len_)
|
if (pos >= len_)
|
||||||
@ -280,15 +280,15 @@ namespace boost {
|
|||||||
( this->crbegin () + pos, this->crend (), s.cbegin (), s.cend (), traits::eq );
|
( this->crbegin () + pos, this->crend (), s.cbegin (), s.cend (), traits::eq );
|
||||||
return iter == this->crend () ? npos : reverse_distance ( this->crbegin (), iter);
|
return iter == this->crend () ? npos : reverse_distance ( this->crbegin (), iter);
|
||||||
}
|
}
|
||||||
size_type find_last_of(charT c, size_type pos = npos) const BOOST_NOEXCEPT
|
BOOST_CXX14_CONSTEXPR size_type find_last_of(charT c, size_type pos = npos) const BOOST_NOEXCEPT
|
||||||
{ return find_last_of(basic_string_view(&c, 1), pos); }
|
{ return find_last_of(basic_string_view(&c, 1), pos); }
|
||||||
size_type find_last_of(const charT* s, size_type pos, size_type n) const
|
BOOST_CXX14_CONSTEXPR size_type find_last_of(const charT* s, size_type pos, size_type n) const
|
||||||
{ return find_last_of(basic_string_view(s, n), pos); }
|
{ return find_last_of(basic_string_view(s, n), pos); }
|
||||||
size_type find_last_of(const charT* s, size_type pos = npos) const
|
BOOST_CXX14_CONSTEXPR size_type find_last_of(const charT* s, size_type pos = npos) const
|
||||||
{ return find_last_of(basic_string_view(s), pos); }
|
{ return find_last_of(basic_string_view(s), pos); }
|
||||||
|
|
||||||
// find_first_not_of
|
// find_first_not_of
|
||||||
size_type find_first_not_of(basic_string_view s, size_type pos = 0) const BOOST_NOEXCEPT {
|
BOOST_CXX14_CONSTEXPR size_type find_first_not_of(basic_string_view s, size_type pos = 0) const BOOST_NOEXCEPT {
|
||||||
if (pos >= len_)
|
if (pos >= len_)
|
||||||
return npos;
|
return npos;
|
||||||
if (s.len_ == 0)
|
if (s.len_ == 0)
|
||||||
@ -296,15 +296,15 @@ namespace boost {
|
|||||||
const_iterator iter = find_not_of ( this->cbegin () + pos, this->cend (), s );
|
const_iterator iter = find_not_of ( this->cbegin () + pos, this->cend (), s );
|
||||||
return iter == this->cend () ? npos : std::distance ( this->cbegin (), iter );
|
return iter == this->cend () ? npos : std::distance ( this->cbegin (), iter );
|
||||||
}
|
}
|
||||||
size_type find_first_not_of(charT c, size_type pos = 0) const BOOST_NOEXCEPT
|
BOOST_CXX14_CONSTEXPR size_type find_first_not_of(charT c, size_type pos = 0) const BOOST_NOEXCEPT
|
||||||
{ return find_first_not_of(basic_string_view(&c, 1), pos); }
|
{ return find_first_not_of(basic_string_view(&c, 1), pos); }
|
||||||
size_type find_first_not_of(const charT* s, size_type pos, size_type n) const
|
BOOST_CXX14_CONSTEXPR size_type find_first_not_of(const charT* s, size_type pos, size_type n) const
|
||||||
{ return find_first_not_of(basic_string_view(s, n), pos); }
|
{ return find_first_not_of(basic_string_view(s, n), pos); }
|
||||||
size_type find_first_not_of(const charT* s, size_type pos = 0) const
|
BOOST_CXX14_CONSTEXPR size_type find_first_not_of(const charT* s, size_type pos = 0) const
|
||||||
{ return find_first_not_of(basic_string_view(s), pos); }
|
{ return find_first_not_of(basic_string_view(s), pos); }
|
||||||
|
|
||||||
// find_last_not_of
|
// find_last_not_of
|
||||||
size_type find_last_not_of(basic_string_view s, size_type pos = npos) const BOOST_NOEXCEPT {
|
BOOST_CXX14_CONSTEXPR size_type find_last_not_of(basic_string_view s, size_type pos = npos) const BOOST_NOEXCEPT {
|
||||||
if (pos >= len_)
|
if (pos >= len_)
|
||||||
pos = len_ - 1;;
|
pos = len_ - 1;;
|
||||||
if (s.len_ == 0u)
|
if (s.len_ == 0u)
|
||||||
@ -313,11 +313,11 @@ namespace boost {
|
|||||||
const_reverse_iterator iter = find_not_of ( this->crbegin () + pos, this->crend (), s );
|
const_reverse_iterator iter = find_not_of ( this->crbegin () + pos, this->crend (), s );
|
||||||
return iter == this->crend () ? npos : reverse_distance ( this->crbegin (), iter );
|
return iter == this->crend () ? npos : reverse_distance ( this->crbegin (), iter );
|
||||||
}
|
}
|
||||||
size_type find_last_not_of(charT c, size_type pos = npos) const BOOST_NOEXCEPT
|
BOOST_CXX14_CONSTEXPR size_type find_last_not_of(charT c, size_type pos = npos) const BOOST_NOEXCEPT
|
||||||
{ return find_last_not_of(basic_string_view(&c, 1), pos); }
|
{ return find_last_not_of(basic_string_view(&c, 1), pos); }
|
||||||
size_type find_last_not_of(const charT* s, size_type pos, size_type n) const
|
BOOST_CXX14_CONSTEXPR size_type find_last_not_of(const charT* s, size_type pos, size_type n) const
|
||||||
{ return find_last_not_of(basic_string_view(s, n), pos); }
|
{ return find_last_not_of(basic_string_view(s, n), pos); }
|
||||||
size_type find_last_not_of(const charT* s, size_type pos = npos) const
|
BOOST_CXX14_CONSTEXPR size_type find_last_not_of(const charT* s, size_type pos = npos) const
|
||||||
{ return find_last_not_of(basic_string_view(s), pos); }
|
{ return find_last_not_of(basic_string_view(s), pos); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user