forked from boostorg/static_string
Unconditional noexcept when exceptions are disabled
This commit is contained in:
@ -65,11 +65,21 @@ A fixed capacity string is useful when:
|
||||
|
||||
[/-----------------------------------------------------------------------------]
|
||||
|
||||
[section Requirements]
|
||||
|
||||
The library is usable in two different modes: standalone and Boost dependent. This library defaults to Boost dependent mode; standalone mode is opt-in through the use of a configuration macro.
|
||||
|
||||
When in Boost dependent mode, the library requires the use of at least C++11, in addition to Boost.Core, Boost.Utility, and Boost.ContainerHash. In standalone mode, C++17 is required but no libraries except for the standard library are needed.
|
||||
|
||||
[endsect]
|
||||
|
||||
[/-----------------------------------------------------------------------------]
|
||||
|
||||
[section Design]
|
||||
|
||||
The over-arching design goal is to resemble the interface and behavior of
|
||||
`std::string` as much as possible. When any operation would exceed the
|
||||
maximum allowed size of the string, `std::length_error` is thrown. All
|
||||
maximum allowed size of the string, `std::length_error` is thrown if exceptions are enabled. All
|
||||
algorithms which throw exceptions provide the strong exception safety
|
||||
guarantee. This is intended to be a drop in replacement for `std::string`.
|
||||
All the operations for `static_string` work when the source is within the string itself.
|
||||
@ -80,8 +90,7 @@ and certain functions that will never throw are marked as `noexcept`, which dive
|
||||
those of `std::string`. Every function that is in the C++20 specification of `std::string` is
|
||||
present in this implementation, with the only difference being the lack of `constexpr`
|
||||
for the time being. The avaliable overloads for `static_string` are identical to those
|
||||
of `std::string`, except for `operator+` which is explicitly deleted as no reasonable implementation
|
||||
would be possible, due to the difficulty in determining the size of the resulting `static_string`.
|
||||
of `std::string`.
|
||||
|
||||
[endsect]
|
||||
|
||||
@ -89,8 +98,7 @@ would be possible, due to the difficulty in determining the size of the resultin
|
||||
|
||||
[section Iterators]
|
||||
|
||||
The iterator invalidation rules are different than those for `std::string`,
|
||||
since:
|
||||
The iterator invalidation rules differ from those of `std::string`:
|
||||
|
||||
* Moving a string invalidates all iterators
|
||||
* Swapping two strings invalidates all iterators
|
||||
@ -99,6 +107,34 @@ since:
|
||||
|
||||
[/-----------------------------------------------------------------------------]
|
||||
|
||||
[section Optimizations]
|
||||
|
||||
Depending on the character type and size used for a specialization of `static_string`, certain optimizations are used to reduce the size of the class type. Given the name of a specialization of the form `static_string<N, CharT, Traits>`:
|
||||
|
||||
* If `N` is 0, then the class has no non-static data members. Given two objects `a` and `b` of type `static_string<0, T>` and `static_string<0, U>` respectively, the pointer value returned by `data()` will be the same if `T` and `U` are the same.
|
||||
|
||||
* Otherwise, the type of the member used to store the size of the `static_string` will be the smallest standard unsigned integer type that can represent the value `N`.
|
||||
|
||||
The optionally enabled null-terminator optimization will instead store the size of the `static_string` in the last character of the data array as `N - size()` if `CharT` can represent the value `N`.
|
||||
|
||||
[endsect]
|
||||
|
||||
[/-----------------------------------------------------------------------------]
|
||||
|
||||
[section Configuration]
|
||||
|
||||
Certain features can be enabled and disabled though defining configuration macros. The macros and the associated feature they control are:
|
||||
|
||||
* `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_NULL_OPTIMIZATION`: When defined, the `static_string` will use the null-terminator optimization.
|
||||
|
||||
[endsect]
|
||||
|
||||
[/-----------------------------------------------------------------------------]
|
||||
|
||||
[section:ref Reference]
|
||||
[include reference.qbk]
|
||||
[endsect]
|
||||
|
@ -15,7 +15,7 @@
|
||||
// #define BOOST_STATIC_STRING_STANDALONE
|
||||
|
||||
// Disable exceptions and their associated checks
|
||||
// #define BOOST_STATIC_STRING_NO_EXCEPTIONS
|
||||
#define BOOST_STATIC_STRING_NO_EXCEPTIONS
|
||||
|
||||
// Opt-in to the null terminator optimization
|
||||
// #define BOOST_STATIC_STRING_NULL_OPTIMIZATION
|
||||
@ -81,8 +81,11 @@
|
||||
#endif
|
||||
|
||||
#ifdef BOOST_STATIC_STRING_NO_EXCEPTIONS
|
||||
#define BOOST_STATIC_STRING_COND_NOEXCEPT noexcept
|
||||
#define BOOST_STATIC_STRING_THROW_IF(cond, ex)
|
||||
#define BOOST_STATIC_STRING_THROW(ex)
|
||||
#else
|
||||
#define BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
#endif
|
||||
|
||||
// Boost and non-Boost versions of utilities
|
||||
|
@ -167,6 +167,7 @@ private:
|
||||
template<typename CharT, typename Traits>
|
||||
constexpr CharT static_string_base_zero<0, CharT, Traits>::null_;
|
||||
|
||||
#ifdef BOOST_STATIC_STRING_NULL_OPTIMIZATION
|
||||
// Optimization for storing the size in the last element
|
||||
template<std::size_t N, typename CharT, typename Traits>
|
||||
class static_string_base_null
|
||||
@ -219,6 +220,7 @@ public:
|
||||
CharT data_[N + 1]{0};
|
||||
#endif
|
||||
};
|
||||
#endif
|
||||
|
||||
// Decides which size optimization to use
|
||||
// If the size is zero, the object will have no members
|
||||
@ -313,7 +315,7 @@ integer_to_string(
|
||||
if (value < 0)
|
||||
{
|
||||
value = -value;
|
||||
for(; value > 0; value /= 10)
|
||||
for (; value > 0; value /= 10)
|
||||
Traits::assign(*--str_end, "0123456789"[value % 10]);
|
||||
Traits::assign(*--str_end, '-');
|
||||
return str_end;
|
||||
|
@ -36,7 +36,7 @@ basic_static_string() noexcept
|
||||
template<std::size_t N, typename CharT, typename Traits>
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
basic_static_string(size_type count, CharT ch)
|
||||
basic_static_string(size_type count, CharT ch) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
assign(count, ch);
|
||||
}
|
||||
@ -46,7 +46,7 @@ template<std::size_t M>
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
basic_static_string(basic_static_string<M, CharT, Traits> const& other,
|
||||
size_type pos)
|
||||
size_type pos) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
assign(other, pos);
|
||||
}
|
||||
@ -58,7 +58,7 @@ basic_static_string<N, CharT, Traits>::
|
||||
basic_static_string(
|
||||
basic_static_string<M, CharT, Traits> const& other,
|
||||
size_type pos,
|
||||
size_type count)
|
||||
size_type count) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
assign(other, pos, count);
|
||||
}
|
||||
@ -66,7 +66,7 @@ basic_static_string(
|
||||
template<std::size_t N, typename CharT, typename Traits>
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
basic_static_string(CharT const* s, size_type count)
|
||||
basic_static_string(CharT const* s, size_type count) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
assign(s, count);
|
||||
}
|
||||
@ -74,7 +74,7 @@ basic_static_string(CharT const* s, size_type count)
|
||||
template<std::size_t N, typename CharT, typename Traits>
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
basic_static_string(CharT const* s)
|
||||
basic_static_string(CharT const* s) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
auto const count = Traits::length(s);
|
||||
BOOST_STATIC_STRING_THROW_IF(count > max_size(),
|
||||
@ -92,7 +92,7 @@ basic_static_string(
|
||||
InputIterator last,
|
||||
typename std::enable_if<
|
||||
detail::is_input_iterator<InputIterator>::value,
|
||||
iterator>::type*)
|
||||
iterator>::type*) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
assign(first, last);
|
||||
}
|
||||
@ -111,7 +111,7 @@ template<std::size_t M>
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
basic_static_string(
|
||||
basic_static_string<M, CharT, Traits> const& s)
|
||||
basic_static_string<M, CharT, Traits> const& s) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
assign(s);
|
||||
}
|
||||
@ -119,7 +119,7 @@ basic_static_string(
|
||||
template<std::size_t N, typename CharT, typename Traits>
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
basic_static_string(std::initializer_list<CharT> init)
|
||||
basic_static_string(std::initializer_list<CharT> init) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
assign(init.begin(), init.end());
|
||||
}
|
||||
@ -127,7 +127,7 @@ basic_static_string(std::initializer_list<CharT> init)
|
||||
template<std::size_t N, typename CharT, typename Traits>
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
basic_static_string(string_view_type sv)
|
||||
basic_static_string(string_view_type sv) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
assign(sv);
|
||||
}
|
||||
@ -136,7 +136,7 @@ template<std::size_t N, typename CharT, typename Traits>
|
||||
template<class T, class>
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
basic_static_string(T const& t, size_type pos, size_type n)
|
||||
basic_static_string(T const& t, size_type pos, size_type n) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
assign(t, pos, n);
|
||||
}
|
||||
@ -153,7 +153,7 @@ auto
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
assign(
|
||||
size_type count,
|
||||
CharT ch) ->
|
||||
CharT ch) BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
basic_static_string&
|
||||
{
|
||||
BOOST_STATIC_STRING_THROW_IF(count > max_size(),
|
||||
@ -188,7 +188,7 @@ basic_static_string<N, CharT, Traits>::
|
||||
assign(
|
||||
basic_static_string<M, CharT, Traits> const& s,
|
||||
size_type pos,
|
||||
size_type count) ->
|
||||
size_type count) BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
basic_static_string&
|
||||
{
|
||||
auto const ss = s.subview(pos, count);
|
||||
@ -201,7 +201,7 @@ auto
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
assign(
|
||||
CharT const* s,
|
||||
size_type count) ->
|
||||
size_type count) BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
basic_static_string&
|
||||
{
|
||||
BOOST_STATIC_STRING_THROW_IF(count > max_size(),
|
||||
@ -219,7 +219,7 @@ auto
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
assign(
|
||||
InputIterator first,
|
||||
InputIterator last) ->
|
||||
InputIterator last) BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
typename std::enable_if<
|
||||
detail::is_input_iterator<InputIterator>::value,
|
||||
basic_static_string&>::type
|
||||
@ -244,7 +244,7 @@ template<std::size_t N, typename CharT, typename Traits>
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
auto
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
at(size_type pos) ->
|
||||
at(size_type pos) BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
reference
|
||||
{
|
||||
BOOST_STATIC_STRING_THROW_IF(
|
||||
@ -256,7 +256,7 @@ template<std::size_t N, typename CharT, typename Traits>
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
auto
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
at(size_type pos) const ->
|
||||
at(size_type pos) const BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
const_reference
|
||||
{
|
||||
BOOST_STATIC_STRING_THROW_IF(
|
||||
@ -274,7 +274,7 @@ template<std::size_t N, typename CharT, typename Traits>
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
void
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
reserve(std::size_t n)
|
||||
reserve(std::size_t n) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
BOOST_STATIC_STRING_THROW_IF(
|
||||
n > max_size(), std::length_error{"n > max_size()"});
|
||||
@ -305,7 +305,7 @@ basic_static_string<N, CharT, Traits>::
|
||||
insert(
|
||||
size_type index,
|
||||
size_type count,
|
||||
CharT ch) ->
|
||||
CharT ch) BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
basic_static_string&
|
||||
{
|
||||
BOOST_STATIC_STRING_THROW_IF(
|
||||
@ -321,7 +321,7 @@ basic_static_string<N, CharT, Traits>::
|
||||
insert(
|
||||
size_type index,
|
||||
CharT const* s,
|
||||
size_type count) ->
|
||||
size_type count) BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
basic_static_string&
|
||||
{
|
||||
const auto curr_size = size();
|
||||
@ -362,7 +362,7 @@ basic_static_string<N, CharT, Traits>::
|
||||
insert(
|
||||
const_iterator pos,
|
||||
size_type count,
|
||||
CharT ch) ->
|
||||
CharT ch) BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
iterator
|
||||
{
|
||||
const auto curr_size = size();
|
||||
@ -385,7 +385,7 @@ basic_static_string<N, CharT, Traits>::
|
||||
insert(
|
||||
const_iterator pos,
|
||||
InputIterator first,
|
||||
InputIterator last) ->
|
||||
InputIterator last) BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
typename std::enable_if<
|
||||
detail::is_input_iterator<
|
||||
InputIterator>::value, iterator>::type
|
||||
@ -401,7 +401,7 @@ auto
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
insert(
|
||||
size_type index,
|
||||
T const & t) ->
|
||||
T const & t) BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
typename std::enable_if<
|
||||
std::is_convertible<
|
||||
T const&, string_view_type>::value &&
|
||||
@ -421,7 +421,7 @@ insert(
|
||||
size_type index,
|
||||
T const & t,
|
||||
size_type index_str,
|
||||
size_type count) ->
|
||||
size_type count) BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
typename std::enable_if<
|
||||
std::is_convertible<
|
||||
T const&, string_view_type>::value &&
|
||||
@ -442,7 +442,7 @@ auto
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
erase(
|
||||
size_type index,
|
||||
size_type count) ->
|
||||
size_type count) BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
basic_static_string&
|
||||
{
|
||||
const auto curr_size = size();
|
||||
@ -460,7 +460,7 @@ BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
auto
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
erase(
|
||||
const_iterator pos) ->
|
||||
const_iterator pos) BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
iterator
|
||||
{
|
||||
erase(pos - begin(), 1);
|
||||
@ -473,7 +473,7 @@ auto
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
erase(
|
||||
const_iterator first,
|
||||
const_iterator last) ->
|
||||
const_iterator last) BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
iterator
|
||||
{
|
||||
erase(first - begin(),
|
||||
@ -486,7 +486,7 @@ BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
void
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
push_back(
|
||||
CharT ch)
|
||||
CharT ch) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
const auto curr_size = size();
|
||||
BOOST_STATIC_STRING_THROW_IF(
|
||||
@ -502,7 +502,7 @@ auto
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
append(
|
||||
CharT const* s,
|
||||
size_type count) ->
|
||||
size_type count) BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
basic_static_string&
|
||||
{
|
||||
const auto curr_size = size();
|
||||
@ -518,7 +518,7 @@ template<std::size_t N, typename CharT, typename Traits>
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
auto
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
substr(size_type pos, size_type count) const ->
|
||||
substr(size_type pos, size_type count) const BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
basic_static_string
|
||||
{
|
||||
BOOST_STATIC_STRING_THROW_IF(
|
||||
@ -530,7 +530,7 @@ template<std::size_t N, typename CharT, typename Traits>
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
auto
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
subview(size_type pos, size_type count) const ->
|
||||
subview(size_type pos, size_type count) const BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
string_view_type
|
||||
{
|
||||
BOOST_STATIC_STRING_THROW_IF(
|
||||
@ -554,7 +554,7 @@ template<std::size_t N, typename CharT, typename Traits>
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
void
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
resize(std::size_t n)
|
||||
resize(std::size_t n) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
const auto curr_size = size();
|
||||
BOOST_STATIC_STRING_THROW_IF(
|
||||
@ -569,7 +569,7 @@ template<std::size_t N, typename CharT, typename Traits>
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
void
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
resize(std::size_t n, CharT c)
|
||||
resize(std::size_t n, CharT c) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
const auto curr_size = size();
|
||||
BOOST_STATIC_STRING_THROW_IF(
|
||||
@ -599,7 +599,7 @@ template<std::size_t M>
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
void
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
swap(basic_static_string<M, CharT, Traits>& s)
|
||||
swap(basic_static_string<M, CharT, Traits>& s) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
const auto curr_size = size();
|
||||
BOOST_STATIC_STRING_THROW_IF(
|
||||
@ -621,7 +621,7 @@ replace(
|
||||
size_type pos,
|
||||
size_type n1,
|
||||
const CharT* s,
|
||||
size_type n2) -> basic_static_string<N, CharT, Traits>&
|
||||
size_type n2) BOOST_STATIC_STRING_COND_NOEXCEPT -> basic_static_string<N, CharT, Traits>&
|
||||
{
|
||||
const auto curr_size = size();
|
||||
const auto curr_data = data();
|
||||
@ -677,7 +677,7 @@ replace(
|
||||
size_type pos,
|
||||
size_type n1,
|
||||
size_type n2,
|
||||
CharT c) -> basic_static_string<N, CharT, Traits> &
|
||||
CharT c) BOOST_STATIC_STRING_COND_NOEXCEPT -> basic_static_string<N, CharT, Traits> &
|
||||
{
|
||||
const auto curr_size = size();
|
||||
const auto curr_data = data();
|
||||
@ -829,7 +829,7 @@ assign_char(CharT ch, std::true_type) noexcept ->
|
||||
template<std::size_t N, typename CharT, typename Traits>
|
||||
auto
|
||||
basic_static_string<N, CharT, Traits>::
|
||||
assign_char(CharT, std::false_type) ->
|
||||
assign_char(CharT, std::false_type) BOOST_STATIC_STRING_COND_NOEXCEPT ->
|
||||
basic_static_string&
|
||||
{
|
||||
BOOST_STATIC_STRING_THROW(std::length_error{"max_size() == 0"});
|
||||
@ -840,7 +840,7 @@ assign_char(CharT, std::false_type) ->
|
||||
|
||||
static_string<std::numeric_limits<int>::digits10 + 1>
|
||||
inline
|
||||
to_static_string(int value)
|
||||
to_static_string(int value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_string_int_impl<
|
||||
std::numeric_limits<int>::digits10 + 1>(value);
|
||||
@ -848,7 +848,7 @@ to_static_string(int value)
|
||||
|
||||
static_string<std::numeric_limits<long>::digits10 + 1>
|
||||
inline
|
||||
to_static_string(long value)
|
||||
to_static_string(long value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_string_int_impl<
|
||||
std::numeric_limits<long>::digits10 + 1>(value);
|
||||
@ -856,7 +856,7 @@ to_static_string(long value)
|
||||
|
||||
static_string<std::numeric_limits<long long>::digits10 + 1>
|
||||
inline
|
||||
to_static_string(long long value)
|
||||
to_static_string(long long value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_string_int_impl<
|
||||
std::numeric_limits<long long>::digits10 + 1>(value);
|
||||
@ -864,7 +864,7 @@ to_static_string(long long value)
|
||||
|
||||
static_string<std::numeric_limits<unsigned int>::digits10 + 1>
|
||||
inline
|
||||
to_static_string(unsigned int value)
|
||||
to_static_string(unsigned int value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_string_int_impl<
|
||||
std::numeric_limits<unsigned int>::digits10 + 1>(value);
|
||||
@ -872,7 +872,7 @@ to_static_string(unsigned int value)
|
||||
|
||||
static_string<std::numeric_limits<unsigned long>::digits10 + 1>
|
||||
inline
|
||||
to_static_string(unsigned long value)
|
||||
to_static_string(unsigned long value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_string_int_impl<
|
||||
std::numeric_limits<unsigned long>::digits10 + 1>(value);
|
||||
@ -880,7 +880,7 @@ to_static_string(unsigned long value)
|
||||
|
||||
static_string<std::numeric_limits<unsigned long long>::digits10 + 1>
|
||||
inline
|
||||
to_static_string(unsigned long long value)
|
||||
to_static_string(unsigned long long value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_string_int_impl<
|
||||
std::numeric_limits<unsigned long long>::digits10 + 1>(value);
|
||||
@ -888,7 +888,7 @@ to_static_string(unsigned long long value)
|
||||
|
||||
static_string<std::numeric_limits<float>::max_digits10 + 1>
|
||||
inline
|
||||
to_static_string(float value)
|
||||
to_static_string(float value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_string_float_impl<
|
||||
std::numeric_limits<float>::max_digits10 + 1>(value);
|
||||
@ -896,7 +896,7 @@ to_static_string(float value)
|
||||
|
||||
static_string<std::numeric_limits<double>::max_digits10 + 1>
|
||||
inline
|
||||
to_static_string(double value)
|
||||
to_static_string(double value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_string_float_impl<
|
||||
std::numeric_limits<double>::max_digits10 + 1>(value);
|
||||
@ -904,7 +904,7 @@ to_static_string(double value)
|
||||
|
||||
static_string<std::numeric_limits<long double>::max_digits10 + 1>
|
||||
inline
|
||||
to_static_string(long double value)
|
||||
to_static_string(long double value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_string_float_impl<
|
||||
std::numeric_limits<long double>::max_digits10 + 1>(value);
|
||||
@ -914,7 +914,7 @@ to_static_string(long double value)
|
||||
|
||||
static_wstring<std::numeric_limits<int>::digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(int value)
|
||||
to_static_wstring(int value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_wstring_int_impl<
|
||||
std::numeric_limits<int>::digits10 + 1>(value);
|
||||
@ -922,7 +922,7 @@ to_static_wstring(int value)
|
||||
|
||||
static_wstring<std::numeric_limits<long>::digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(long value)
|
||||
to_static_wstring(long value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_wstring_int_impl<
|
||||
std::numeric_limits<long>::digits10 + 1>(value);
|
||||
@ -930,7 +930,7 @@ to_static_wstring(long value)
|
||||
|
||||
static_wstring<std::numeric_limits<long long>::digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(long long value)
|
||||
to_static_wstring(long long value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_wstring_int_impl<
|
||||
std::numeric_limits<long long>::digits10 + 1>(value);
|
||||
@ -938,7 +938,7 @@ to_static_wstring(long long value)
|
||||
|
||||
static_wstring<std::numeric_limits<unsigned int>::digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(unsigned int value)
|
||||
to_static_wstring(unsigned int value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_wstring_int_impl<
|
||||
std::numeric_limits<unsigned int>::digits10 + 1>(value);
|
||||
@ -946,7 +946,7 @@ to_static_wstring(unsigned int value)
|
||||
|
||||
static_wstring<std::numeric_limits<unsigned long>::digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(unsigned long value)
|
||||
to_static_wstring(unsigned long value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_wstring_int_impl<
|
||||
std::numeric_limits<unsigned long>::digits10 + 1>(value);
|
||||
@ -954,7 +954,7 @@ to_static_wstring(unsigned long value)
|
||||
|
||||
static_wstring<std::numeric_limits<unsigned long long>::digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(unsigned long long value)
|
||||
to_static_wstring(unsigned long long value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_wstring_int_impl<
|
||||
std::numeric_limits<unsigned long long>::digits10 + 1>(value);
|
||||
@ -962,7 +962,7 @@ to_static_wstring(unsigned long long value)
|
||||
|
||||
static_wstring<std::numeric_limits<float>::max_digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(float value)
|
||||
to_static_wstring(float value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_wstring_float_impl<
|
||||
std::numeric_limits<float>::max_digits10 + 1>(value);
|
||||
@ -970,7 +970,7 @@ to_static_wstring(float value)
|
||||
|
||||
static_wstring<std::numeric_limits<double>::max_digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(double value)
|
||||
to_static_wstring(double value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_wstring_float_impl<
|
||||
std::numeric_limits<double>::max_digits10 + 1>(value);
|
||||
@ -978,7 +978,7 @@ to_static_wstring(double value)
|
||||
|
||||
static_wstring<std::numeric_limits<long double>::max_digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(long double value)
|
||||
to_static_wstring(long double value) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::to_static_wstring_float_impl<
|
||||
std::numeric_limits<long double>::max_digits10 + 1>(value);
|
||||
|
@ -117,7 +117,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string(
|
||||
size_type count,
|
||||
CharT ch);
|
||||
CharT ch) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Construct a `basic_static_string`.
|
||||
|
||||
@ -127,7 +127,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string(
|
||||
basic_static_string<M, CharT, Traits> const& other,
|
||||
size_type pos);
|
||||
size_type pos) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Construct a `basic_static_string`.
|
||||
|
||||
@ -138,7 +138,7 @@ public:
|
||||
basic_static_string(
|
||||
basic_static_string<M, CharT, Traits> const& other,
|
||||
size_type pos,
|
||||
size_type count);
|
||||
size_type count) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Construct a `basic_static_string`.
|
||||
|
||||
@ -147,7 +147,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string(
|
||||
CharT const* s,
|
||||
size_type count);
|
||||
size_type count) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Construct a `basic_static_string`.
|
||||
|
||||
@ -155,7 +155,7 @@ public:
|
||||
*/
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string(
|
||||
CharT const* s);
|
||||
CharT const* s) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Construct a `basic_static_string`.
|
||||
|
||||
@ -171,7 +171,7 @@ public:
|
||||
detail::is_input_iterator<InputIterator>::value,
|
||||
iterator>::type* = 0
|
||||
#endif
|
||||
);
|
||||
) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Construct a `basic_static_string`.
|
||||
|
||||
@ -188,7 +188,7 @@ public:
|
||||
template<std::size_t M>
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string(
|
||||
basic_static_string<M, CharT, Traits> const& other);
|
||||
basic_static_string<M, CharT, Traits> const& other) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Construct a `basic_static_string`.
|
||||
|
||||
@ -196,7 +196,7 @@ public:
|
||||
*/
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string(
|
||||
std::initializer_list<CharT> init);
|
||||
std::initializer_list<CharT> init) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Construct a `basic_static_string`.
|
||||
|
||||
@ -205,7 +205,7 @@ public:
|
||||
explicit
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string(
|
||||
string_view_type sv);
|
||||
string_view_type sv) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Construct a `basic_static_string`.
|
||||
|
||||
@ -225,7 +225,7 @@ public:
|
||||
basic_static_string(
|
||||
T const& t,
|
||||
size_type pos,
|
||||
size_type n);
|
||||
size_type n) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
//
|
||||
@ -256,7 +256,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string&
|
||||
operator=(
|
||||
basic_static_string<M, CharT, Traits> const& s)
|
||||
basic_static_string<M, CharT, Traits> const& s) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return assign(s);
|
||||
}
|
||||
@ -270,7 +270,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string&
|
||||
operator=(
|
||||
CharT const* s)
|
||||
CharT const* s) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return assign(s);
|
||||
}
|
||||
@ -282,7 +282,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string&
|
||||
operator=(
|
||||
CharT ch)
|
||||
CharT ch) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return assign_char(ch,
|
||||
std::integral_constant<bool, (N > 0)>{});
|
||||
@ -295,7 +295,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string&
|
||||
operator=(
|
||||
std::initializer_list<CharT> ilist)
|
||||
std::initializer_list<CharT> ilist) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return assign(ilist);
|
||||
}
|
||||
@ -307,7 +307,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string&
|
||||
operator=(
|
||||
string_view_type sv)
|
||||
string_view_type sv) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return assign(sv);
|
||||
}
|
||||
@ -323,7 +323,7 @@ public:
|
||||
basic_static_string&
|
||||
assign(
|
||||
size_type count,
|
||||
CharT ch);
|
||||
CharT ch) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Replace the contents.
|
||||
|
||||
@ -347,7 +347,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string&
|
||||
assign(
|
||||
basic_static_string<M, CharT, Traits> const& s)
|
||||
basic_static_string<M, CharT, Traits> const& s) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
// VFALCO this could come in two flavors,
|
||||
// N>M and N<M, and skip the exception
|
||||
@ -368,7 +368,7 @@ public:
|
||||
assign(
|
||||
basic_static_string<M, CharT, Traits> const& s,
|
||||
size_type pos,
|
||||
size_type count = npos);
|
||||
size_type count = npos) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Replace the contents.
|
||||
|
||||
@ -381,7 +381,7 @@ public:
|
||||
basic_static_string&
|
||||
assign(
|
||||
CharT const* s,
|
||||
size_type count);
|
||||
size_type count) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Replace the contents.
|
||||
|
||||
@ -393,7 +393,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string&
|
||||
assign(
|
||||
CharT const* s)
|
||||
CharT const* s) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return assign(s, Traits::length(s));
|
||||
}
|
||||
@ -416,7 +416,7 @@ public:
|
||||
#endif
|
||||
assign(
|
||||
InputIterator first,
|
||||
InputIterator last);
|
||||
InputIterator last) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Replace the contents.
|
||||
|
||||
@ -427,7 +427,7 @@ public:
|
||||
*/
|
||||
basic_static_string&
|
||||
assign(
|
||||
std::initializer_list<CharT> ilist)
|
||||
std::initializer_list<CharT> ilist) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return assign(ilist.begin(), ilist.end());
|
||||
}
|
||||
@ -448,7 +448,7 @@ public:
|
||||
! std::is_convertible<T, CharT const*>::value,
|
||||
basic_static_string&>::type
|
||||
#endif
|
||||
assign(T const& t)
|
||||
assign(T const& t) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
string_view_type ss{t};
|
||||
return assign(ss.data(), ss.size());
|
||||
@ -479,7 +479,7 @@ public:
|
||||
assign(
|
||||
T const& t,
|
||||
size_type pos,
|
||||
size_type count = npos)
|
||||
size_type count = npos) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return assign(string_view_type{t}.substr(pos, count));
|
||||
}
|
||||
@ -496,7 +496,7 @@ public:
|
||||
*/
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
reference
|
||||
at(size_type pos);
|
||||
at(size_type pos) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Access specified character with bounds checking.
|
||||
|
||||
@ -504,7 +504,7 @@ public:
|
||||
*/
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
const_reference
|
||||
at(size_type pos) const;
|
||||
at(size_type pos) const BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Access specified character
|
||||
|
||||
@ -755,7 +755,7 @@ public:
|
||||
*/
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
void
|
||||
reserve(std::size_t n);
|
||||
reserve(std::size_t n) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Returns the number of characters that can be held in currently allocated storage.
|
||||
|
||||
@ -802,7 +802,7 @@ public:
|
||||
insert(
|
||||
size_type index,
|
||||
size_type count,
|
||||
CharT ch);
|
||||
CharT ch) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Insert into the string.
|
||||
|
||||
@ -816,7 +816,7 @@ public:
|
||||
basic_static_string&
|
||||
insert(
|
||||
size_type index,
|
||||
CharT const* s)
|
||||
CharT const* s) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return insert(index, s, Traits::length(s));
|
||||
}
|
||||
@ -836,7 +836,7 @@ public:
|
||||
insert(
|
||||
size_type index,
|
||||
CharT const* s,
|
||||
size_type count);
|
||||
size_type count) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Insert into the string.
|
||||
|
||||
@ -852,7 +852,7 @@ public:
|
||||
basic_static_string&
|
||||
insert(
|
||||
size_type index,
|
||||
string_view_type sv)
|
||||
string_view_type sv) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return insert(index, sv.data(), sv.size());
|
||||
}
|
||||
@ -873,7 +873,7 @@ public:
|
||||
size_type index,
|
||||
string_view_type sv,
|
||||
size_type index_str,
|
||||
size_type count = npos)
|
||||
size_type count = npos) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return insert(index, sv.substr(index_str, count));
|
||||
}
|
||||
@ -891,7 +891,7 @@ public:
|
||||
iterator
|
||||
insert(
|
||||
const_iterator pos,
|
||||
CharT ch)
|
||||
CharT ch) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return insert(pos, 1, ch);
|
||||
}
|
||||
@ -910,7 +910,7 @@ public:
|
||||
insert(
|
||||
const_iterator pos,
|
||||
size_type count,
|
||||
CharT ch);
|
||||
CharT ch) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Insert into the string.
|
||||
|
||||
@ -935,7 +935,7 @@ public:
|
||||
insert(
|
||||
const_iterator pos,
|
||||
InputIterator first,
|
||||
InputIterator last);
|
||||
InputIterator last) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Insert into the string.
|
||||
|
||||
@ -950,7 +950,7 @@ public:
|
||||
iterator
|
||||
insert(
|
||||
const_iterator pos,
|
||||
std::initializer_list<CharT> ilist)
|
||||
std::initializer_list<CharT> ilist) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return insert(pos, ilist.begin(), ilist.end());
|
||||
}
|
||||
@ -981,7 +981,7 @@ public:
|
||||
#endif
|
||||
insert(
|
||||
size_type index,
|
||||
T const& t);
|
||||
T const& t) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Insert into the string.
|
||||
|
||||
@ -1010,7 +1010,7 @@ public:
|
||||
size_type index,
|
||||
T const& t,
|
||||
size_type index_str,
|
||||
size_type count = npos);
|
||||
size_type count = npos) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Removes `min(count, size() - index)` characters starting at `index`
|
||||
|
||||
@ -1021,7 +1021,7 @@ public:
|
||||
basic_static_string&
|
||||
erase(
|
||||
size_type index = 0,
|
||||
size_type count = npos);
|
||||
size_type count = npos) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Removes the character at `pos`
|
||||
|
||||
@ -1030,7 +1030,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
iterator
|
||||
erase(
|
||||
const_iterator pos);
|
||||
const_iterator pos) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Removes the characters in the range `(first, last)`
|
||||
|
||||
@ -1040,7 +1040,7 @@ public:
|
||||
iterator
|
||||
erase(
|
||||
const_iterator first,
|
||||
const_iterator last);
|
||||
const_iterator last) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Appends the given character `ch` to the end of the string.
|
||||
|
||||
@ -1049,7 +1049,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
void
|
||||
push_back(
|
||||
CharT ch);
|
||||
CharT ch) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Removes the last character from the string
|
||||
|
||||
@ -1075,7 +1075,7 @@ public:
|
||||
basic_static_string&
|
||||
append(
|
||||
size_type count,
|
||||
CharT ch)
|
||||
CharT ch) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return insert(size(), count, ch);
|
||||
}
|
||||
@ -1092,7 +1092,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string&
|
||||
append(
|
||||
string_view_type sv)
|
||||
string_view_type sv) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return append(sv.data(), sv.size());
|
||||
}
|
||||
@ -1112,7 +1112,7 @@ public:
|
||||
append(
|
||||
string_view_type sv,
|
||||
size_type pos,
|
||||
size_type count = npos)
|
||||
size_type count = npos) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return append(sv.substr(pos, count));
|
||||
}
|
||||
@ -1130,7 +1130,7 @@ public:
|
||||
basic_static_string&
|
||||
append(
|
||||
CharT const* s,
|
||||
size_type count);
|
||||
size_type count) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Append to the string.
|
||||
|
||||
@ -1145,7 +1145,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string&
|
||||
append(
|
||||
CharT const* s)
|
||||
CharT const* s) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return append(s, Traits::length(s));
|
||||
}
|
||||
@ -1172,7 +1172,7 @@ public:
|
||||
#endif
|
||||
append(
|
||||
InputIterator first,
|
||||
InputIterator last)
|
||||
InputIterator last) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
insert(end(), first, last);
|
||||
return *this;
|
||||
@ -1190,7 +1190,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string&
|
||||
append(
|
||||
std::initializer_list<CharT> ilist)
|
||||
std::initializer_list<CharT> ilist) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
insert(end(), ilist);
|
||||
return *this;
|
||||
@ -1221,7 +1221,7 @@ public:
|
||||
basic_static_string&>::type
|
||||
#endif
|
||||
append(
|
||||
T const& t)
|
||||
T const& t) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return append(string_view_type{t});
|
||||
}
|
||||
@ -1254,7 +1254,7 @@ public:
|
||||
append(
|
||||
T const& t,
|
||||
size_type pos,
|
||||
size_type count = npos)
|
||||
size_type count = npos) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return append(string_view_type{t}.substr(pos, count));
|
||||
}
|
||||
@ -1267,7 +1267,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string&
|
||||
operator+=(
|
||||
basic_static_string<M, CharT, Traits> const& s)
|
||||
basic_static_string<M, CharT, Traits> const& s) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return append(s.data(), s.size());
|
||||
}
|
||||
@ -1281,7 +1281,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string&
|
||||
operator+=(
|
||||
CharT ch)
|
||||
CharT ch) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
push_back(ch);
|
||||
return *this;
|
||||
@ -1300,7 +1300,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string&
|
||||
operator+=(
|
||||
CharT const* s)
|
||||
CharT const* s) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return append(s);
|
||||
}
|
||||
@ -1317,7 +1317,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
basic_static_string&
|
||||
operator+=(
|
||||
std::initializer_list<CharT> ilist)
|
||||
std::initializer_list<CharT> ilist) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return append(ilist);
|
||||
}
|
||||
@ -1344,7 +1344,7 @@ public:
|
||||
basic_static_string&>::type
|
||||
#endif
|
||||
operator+=(
|
||||
T const& t)
|
||||
T const& t) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return append(t);
|
||||
}
|
||||
@ -1373,7 +1373,7 @@ public:
|
||||
compare(
|
||||
size_type pos1,
|
||||
size_type count1,
|
||||
basic_static_string<M, CharT, Traits> const& s) const
|
||||
basic_static_string<M, CharT, Traits> const& s) const BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::lexicographical_compare<CharT, Traits>(
|
||||
subview(pos1, count1), s.data(), s.size());
|
||||
@ -1393,7 +1393,7 @@ public:
|
||||
size_type count1,
|
||||
basic_static_string<M, CharT, Traits> const& s,
|
||||
size_type pos2,
|
||||
size_type count2 = npos) const
|
||||
size_type count2 = npos) const BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::lexicographical_compare(
|
||||
subview(pos1, count1), s.subview(pos2, count2));
|
||||
@ -1422,7 +1422,7 @@ public:
|
||||
compare(
|
||||
size_type pos1,
|
||||
size_type count1,
|
||||
CharT const* s) const
|
||||
CharT const* s) const BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::lexicographical_compare<CharT, Traits>(
|
||||
subview(pos1, count1), s, Traits::length(s));
|
||||
@ -1438,7 +1438,7 @@ public:
|
||||
size_type pos1,
|
||||
size_type count1,
|
||||
CharT const* s,
|
||||
size_type count2) const
|
||||
size_type count2) const BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::lexicographical_compare<CharT, Traits>(
|
||||
subview(pos1, count1), s, count2);
|
||||
@ -1466,7 +1466,7 @@ public:
|
||||
compare(
|
||||
size_type pos1,
|
||||
size_type count1,
|
||||
string_view_type s) const
|
||||
string_view_type s) const BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::lexicographical_compare<CharT, Traits>(
|
||||
subview(pos1, count1), s);
|
||||
@ -1495,7 +1495,7 @@ public:
|
||||
size_type count1,
|
||||
T const& t,
|
||||
size_type pos2,
|
||||
size_type count2 = npos) const
|
||||
size_type count2 = npos) const BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return compare(pos1, count1,
|
||||
string_view_type(t).substr(pos2, count2));
|
||||
@ -1511,7 +1511,7 @@ public:
|
||||
basic_static_string
|
||||
substr(
|
||||
size_type pos = 0,
|
||||
size_type count = npos) const;
|
||||
size_type count = npos) const BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Returns a view of a substring.
|
||||
|
||||
@ -1523,7 +1523,7 @@ public:
|
||||
string_view_type
|
||||
subview(
|
||||
size_type pos = 0,
|
||||
size_type count = npos) const;
|
||||
size_type count = npos) const BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Copy a substring.
|
||||
|
||||
@ -1544,7 +1544,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
void
|
||||
resize(
|
||||
std::size_t n);
|
||||
std::size_t n) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Changes the number of characters stored.
|
||||
|
||||
@ -1555,7 +1555,7 @@ public:
|
||||
void
|
||||
resize(
|
||||
std::size_t n,
|
||||
CharT c);
|
||||
CharT c) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/// Exchange the contents of this string with another.
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
@ -1568,7 +1568,7 @@ public:
|
||||
BOOST_STATIC_STRING_CPP14_CONSTEXPR
|
||||
void
|
||||
swap(
|
||||
basic_static_string<M, CharT, Traits>& s);
|
||||
basic_static_string<M, CharT, Traits>& s) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Replace a subset of the string.
|
||||
|
||||
@ -1584,7 +1584,7 @@ public:
|
||||
replace(
|
||||
size_type pos1,
|
||||
size_type n1,
|
||||
const basic_static_string<M, CharT, Traits>& str)
|
||||
const basic_static_string<M, CharT, Traits>& str) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return replace(pos1, n1, str.data(), str.size());
|
||||
}
|
||||
@ -1605,7 +1605,7 @@ public:
|
||||
size_type n1,
|
||||
const basic_static_string& str,
|
||||
size_type pos2,
|
||||
size_type n2 = npos)
|
||||
size_type n2 = npos) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return replace(pos1, n1, str.subview(pos2, n2));
|
||||
}
|
||||
@ -1635,7 +1635,7 @@ public:
|
||||
replace(
|
||||
size_type pos1,
|
||||
size_type n1,
|
||||
const T& t)
|
||||
const T& t) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
string_view_type sv = t;
|
||||
return replace(pos1, n1, sv.data(), sv.size());
|
||||
@ -1669,7 +1669,7 @@ public:
|
||||
size_type n1,
|
||||
const T& t,
|
||||
size_type pos2,
|
||||
size_type n2 = npos)
|
||||
size_type n2 = npos) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
string_view_type sv = t;
|
||||
return replace(pos1, n1, sv.substr(pos2, n2));
|
||||
@ -1689,7 +1689,7 @@ public:
|
||||
size_type pos,
|
||||
size_type n1,
|
||||
const CharT* s,
|
||||
size_type n2);
|
||||
size_type n2) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
|
||||
/** Replace a subset of the string.
|
||||
@ -1705,7 +1705,7 @@ public:
|
||||
replace(
|
||||
size_type pos,
|
||||
size_type n1,
|
||||
const CharT* s)
|
||||
const CharT* s) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return replace(pos, n1, s, Traits::length(s));
|
||||
}
|
||||
@ -1724,7 +1724,7 @@ public:
|
||||
size_type pos,
|
||||
size_type n1,
|
||||
size_type n2,
|
||||
CharT c);
|
||||
CharT c) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
/** Replace a subset of the string.
|
||||
|
||||
@ -1739,7 +1739,7 @@ public:
|
||||
replace(
|
||||
const_iterator i1,
|
||||
const_iterator i2,
|
||||
const basic_static_string& str)
|
||||
const basic_static_string& str) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return replace(i1, i2, str.data(), str.size());
|
||||
}
|
||||
@ -1769,7 +1769,7 @@ public:
|
||||
replace(
|
||||
const_iterator i1,
|
||||
const_iterator i2,
|
||||
const T& t)
|
||||
const T& t) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
string_view_type sv = t;
|
||||
return replace(i1 - begin(), i2 - i1, sv.data(), sv.size());
|
||||
@ -1789,7 +1789,7 @@ public:
|
||||
const_iterator i1,
|
||||
const_iterator i2,
|
||||
const CharT* s,
|
||||
size_type n)
|
||||
size_type n) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return replace(i1 - begin(), i2 - i1, s, n);
|
||||
}
|
||||
@ -1807,7 +1807,7 @@ public:
|
||||
replace(
|
||||
const_iterator i1,
|
||||
const_iterator i2,
|
||||
const CharT* s)
|
||||
const CharT* s) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return replace(i1, i2, s, Traits::length(s));
|
||||
}
|
||||
@ -1826,7 +1826,7 @@ public:
|
||||
const_iterator i1,
|
||||
const_iterator i2,
|
||||
size_type n,
|
||||
CharT c)
|
||||
CharT c) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return replace(i1 - begin(), i2 - i1, n, c);
|
||||
}
|
||||
@ -1852,7 +1852,7 @@ public:
|
||||
const_iterator i1,
|
||||
const_iterator i2,
|
||||
InputIterator j1,
|
||||
InputIterator j2)
|
||||
InputIterator j2) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return replace(i1, i2, basic_static_string(j1, j2));
|
||||
}
|
||||
@ -1870,7 +1870,7 @@ public:
|
||||
replace(
|
||||
const_iterator i1,
|
||||
const_iterator i2,
|
||||
std::initializer_list<CharT> il)
|
||||
std::initializer_list<CharT> il) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return replace(i1, i2, il.begin(), il.size());
|
||||
}
|
||||
@ -2421,7 +2421,7 @@ private:
|
||||
assign_char(CharT ch, std::true_type) noexcept;
|
||||
|
||||
basic_static_string&
|
||||
assign_char(CharT ch, std::false_type);
|
||||
assign_char(CharT ch, std::false_type) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@ -2438,7 +2438,7 @@ inline
|
||||
bool
|
||||
operator==(
|
||||
basic_static_string<N, CharT, Traits> const& lhs,
|
||||
basic_static_string<M, CharT, Traits> const& rhs)
|
||||
basic_static_string<M, CharT, Traits> const& rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return lhs.compare(rhs) == 0;
|
||||
}
|
||||
@ -2451,7 +2451,7 @@ inline
|
||||
bool
|
||||
operator!=(
|
||||
basic_static_string<N, CharT, Traits> const& lhs,
|
||||
basic_static_string<M, CharT, Traits> const& rhs)
|
||||
basic_static_string<M, CharT, Traits> const& rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return lhs.compare(rhs) != 0;
|
||||
}
|
||||
@ -2464,7 +2464,7 @@ inline
|
||||
bool
|
||||
operator<(
|
||||
basic_static_string<N, CharT, Traits> const& lhs,
|
||||
basic_static_string<M, CharT, Traits> const& rhs)
|
||||
basic_static_string<M, CharT, Traits> const& rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return lhs.compare(rhs) < 0;
|
||||
}
|
||||
@ -2477,7 +2477,7 @@ inline
|
||||
bool
|
||||
operator<=(
|
||||
basic_static_string<N, CharT, Traits> const& lhs,
|
||||
basic_static_string<M, CharT, Traits> const& rhs)
|
||||
basic_static_string<M, CharT, Traits> const& rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return lhs.compare(rhs) <= 0;
|
||||
}
|
||||
@ -2490,7 +2490,7 @@ inline
|
||||
bool
|
||||
operator>(
|
||||
basic_static_string<N, CharT, Traits> const& lhs,
|
||||
basic_static_string<M, CharT, Traits> const& rhs)
|
||||
basic_static_string<M, CharT, Traits> const& rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return lhs.compare(rhs) > 0;
|
||||
}
|
||||
@ -2503,7 +2503,7 @@ inline
|
||||
bool
|
||||
operator>=(
|
||||
basic_static_string<N, CharT, Traits> const& lhs,
|
||||
basic_static_string<M, CharT, Traits> const& rhs)
|
||||
basic_static_string<M, CharT, Traits> const& rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return lhs.compare(rhs) >= 0;
|
||||
}
|
||||
@ -2514,7 +2514,7 @@ inline
|
||||
bool
|
||||
operator==(
|
||||
CharT const* lhs,
|
||||
basic_static_string<N, CharT, Traits> const& rhs)
|
||||
basic_static_string<N, CharT, Traits> const& rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::lexicographical_compare<CharT, Traits>(
|
||||
lhs, Traits::length(lhs),
|
||||
@ -2527,7 +2527,7 @@ inline
|
||||
bool
|
||||
operator==(
|
||||
basic_static_string<N, CharT, Traits> const& lhs,
|
||||
CharT const* rhs)
|
||||
CharT const* rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::lexicographical_compare<CharT, Traits>(
|
||||
lhs.data(), lhs.size(),
|
||||
@ -2540,7 +2540,7 @@ inline
|
||||
bool
|
||||
operator!=(
|
||||
CharT const* lhs,
|
||||
basic_static_string<N, CharT, Traits> const& rhs)
|
||||
basic_static_string<N, CharT, Traits> const& rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::lexicographical_compare<CharT, Traits>(
|
||||
lhs, Traits::length(lhs),
|
||||
@ -2553,7 +2553,7 @@ inline
|
||||
bool
|
||||
operator!=(
|
||||
basic_static_string<N, CharT, Traits> const& lhs,
|
||||
CharT const* rhs)
|
||||
CharT const* rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::lexicographical_compare<CharT, Traits>(
|
||||
lhs.data(), lhs.size(),
|
||||
@ -2566,7 +2566,7 @@ inline
|
||||
bool
|
||||
operator<(
|
||||
CharT const* lhs,
|
||||
basic_static_string<N, CharT, Traits> const& rhs)
|
||||
basic_static_string<N, CharT, Traits> const& rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::lexicographical_compare<CharT, Traits>(
|
||||
lhs, Traits::length(lhs),
|
||||
@ -2579,7 +2579,7 @@ inline
|
||||
bool
|
||||
operator<(
|
||||
basic_static_string<N, CharT, Traits> const& lhs,
|
||||
CharT const* rhs)
|
||||
CharT const* rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::lexicographical_compare<CharT, Traits>(
|
||||
lhs.data(), lhs.size(),
|
||||
@ -2592,7 +2592,7 @@ inline
|
||||
bool
|
||||
operator<=(
|
||||
CharT const* lhs,
|
||||
basic_static_string<N, CharT, Traits> const& rhs)
|
||||
basic_static_string<N, CharT, Traits> const& rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::lexicographical_compare<CharT, Traits>(
|
||||
lhs, Traits::length(lhs),
|
||||
@ -2605,7 +2605,7 @@ inline
|
||||
bool
|
||||
operator<=(
|
||||
basic_static_string<N, CharT, Traits> const& lhs,
|
||||
CharT const* rhs)
|
||||
CharT const* rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::lexicographical_compare<CharT, Traits>(
|
||||
lhs.data(), lhs.size(),
|
||||
@ -2618,7 +2618,7 @@ inline
|
||||
bool
|
||||
operator>(
|
||||
CharT const* lhs,
|
||||
basic_static_string<N, CharT, Traits> const& rhs)
|
||||
basic_static_string<N, CharT, Traits> const& rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::lexicographical_compare<CharT, Traits>(
|
||||
lhs, Traits::length(lhs),
|
||||
@ -2631,7 +2631,7 @@ inline
|
||||
bool
|
||||
operator>(
|
||||
basic_static_string<N, CharT, Traits> const& lhs,
|
||||
CharT const* rhs)
|
||||
CharT const* rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::lexicographical_compare<CharT, Traits>(
|
||||
lhs.data(), lhs.size(),
|
||||
@ -2644,7 +2644,7 @@ inline
|
||||
bool
|
||||
operator>=(
|
||||
CharT const* lhs,
|
||||
basic_static_string<N, CharT, Traits> const& rhs)
|
||||
basic_static_string<N, CharT, Traits> const& rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::lexicographical_compare<CharT, Traits>(
|
||||
lhs, Traits::length(lhs),
|
||||
@ -2657,7 +2657,7 @@ inline
|
||||
bool
|
||||
operator>=(
|
||||
basic_static_string<N, CharT, Traits> const& lhs,
|
||||
CharT const* rhs)
|
||||
CharT const* rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return detail::lexicographical_compare<CharT, Traits>(
|
||||
lhs.data(), lhs.size(),
|
||||
@ -2672,7 +2672,7 @@ inline
|
||||
basic_static_string<N + M, CharT, Traits>
|
||||
operator+(
|
||||
basic_static_string<N, CharT, Traits>const& lhs,
|
||||
basic_static_string<M, CharT, Traits>const& rhs)
|
||||
basic_static_string<M, CharT, Traits>const& rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return basic_static_string<N + M, CharT, Traits>(lhs) += rhs;
|
||||
}
|
||||
@ -2683,7 +2683,7 @@ inline
|
||||
basic_static_string<N + 1, CharT, Traits>
|
||||
operator+(
|
||||
basic_static_string<N, CharT, Traits> const& lhs,
|
||||
CharT rhs)
|
||||
CharT rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return basic_static_string<N + 1, CharT, Traits>(lhs) += rhs;
|
||||
}
|
||||
@ -2694,7 +2694,7 @@ inline
|
||||
basic_static_string<N + 1, CharT, Traits>
|
||||
operator+(
|
||||
CharT lhs,
|
||||
basic_static_string<N, CharT, Traits> const& rhs)
|
||||
basic_static_string<N, CharT, Traits> const& rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return basic_static_string<N + 1, CharT, Traits>(rhs).insert(0, lhs);
|
||||
}
|
||||
@ -2707,7 +2707,7 @@ inline
|
||||
basic_static_string<N + M, CharT, Traits>
|
||||
operator+(
|
||||
basic_static_string<N, CharT, Traits>const& lhs,
|
||||
const CharT(&rhs)[M])
|
||||
const CharT(&rhs)[M]) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return basic_static_string<N + M, CharT, Traits>(lhs).append(+rhs, M);
|
||||
}
|
||||
@ -2720,7 +2720,7 @@ inline
|
||||
basic_static_string<N + M, CharT, Traits>
|
||||
operator+(
|
||||
const CharT(&lhs)[N],
|
||||
basic_static_string<M, CharT, Traits>const& rhs)
|
||||
basic_static_string<M, CharT, Traits>const& rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
return basic_static_string<N + M, CharT, Traits>(rhs).insert(0, +rhs, N);
|
||||
}
|
||||
@ -2740,7 +2740,7 @@ inline
|
||||
void
|
||||
swap(
|
||||
basic_static_string<N, CharT, Traits>& lhs,
|
||||
basic_static_string<N, CharT, Traits>& rhs)
|
||||
basic_static_string<N, CharT, Traits>& rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
lhs.swap(rhs);
|
||||
}
|
||||
@ -2753,7 +2753,7 @@ inline
|
||||
void
|
||||
swap(
|
||||
basic_static_string<N, CharT, Traits>& lhs,
|
||||
basic_static_string<M, CharT, Traits>& rhs)
|
||||
basic_static_string<M, CharT, Traits>& rhs) BOOST_STATIC_STRING_COND_NOEXCEPT
|
||||
{
|
||||
lhs.swap(rhs);
|
||||
}
|
||||
@ -2801,77 +2801,77 @@ using static_u32string = basic_static_string<N, char32_t>;
|
||||
|
||||
static_string<std::numeric_limits<int>::digits10 + 1>
|
||||
inline
|
||||
to_static_string(int value);
|
||||
to_static_string(int value) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
static_string<std::numeric_limits<long>::digits10 + 1>
|
||||
inline
|
||||
to_static_string(long value);
|
||||
to_static_string(long value)BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
static_string<std::numeric_limits<long long>::digits10 + 1>
|
||||
inline
|
||||
to_static_string(long long value);
|
||||
to_static_string(long long value)BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
static_string<std::numeric_limits<unsigned int>::digits10 + 1>
|
||||
inline
|
||||
to_static_string(unsigned int value);
|
||||
to_static_string(unsigned int value) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
static_string<std::numeric_limits<unsigned long>::digits10 + 1>
|
||||
inline
|
||||
to_static_string(unsigned long value);
|
||||
to_static_string(unsigned long value) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
static_string<std::numeric_limits<unsigned long long>::digits10 + 1>
|
||||
inline
|
||||
to_static_string(unsigned long long value);
|
||||
to_static_string(unsigned long long value) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
static_string<std::numeric_limits<float>::max_digits10 + 1>
|
||||
inline
|
||||
to_static_string(float value);
|
||||
to_static_string(float value) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
static_string<std::numeric_limits<double>::max_digits10 + 1>
|
||||
inline
|
||||
to_static_string(double value);
|
||||
to_static_string(double value) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
static_string<std::numeric_limits<long double>::max_digits10 + 1>
|
||||
inline
|
||||
to_static_string(long double value);
|
||||
to_static_string(long double value) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
// wstring
|
||||
|
||||
static_wstring<std::numeric_limits<int>::digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(int value);
|
||||
to_static_wstring(int value) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
static_wstring<std::numeric_limits<long>::digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(long value);
|
||||
to_static_wstring(long value) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
static_wstring<std::numeric_limits<long long>::digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(long long value);
|
||||
to_static_wstring(long long value) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
static_wstring<std::numeric_limits<unsigned int>::digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(unsigned int value);
|
||||
to_static_wstring(unsigned int value) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
static_wstring<std::numeric_limits<unsigned long>::digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(unsigned long value);
|
||||
to_static_wstring(unsigned long value) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
static_wstring<std::numeric_limits<unsigned long long>::digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(unsigned long long value);
|
||||
to_static_wstring(unsigned long long value) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
static_wstring<std::numeric_limits<float>::max_digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(float value);
|
||||
to_static_wstring(float value) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
static_wstring<std::numeric_limits<double>::max_digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(double value);
|
||||
to_static_wstring(double value) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
static_wstring<std::numeric_limits<long double>::max_digits10 + 1>
|
||||
inline
|
||||
to_static_wstring(long double value);
|
||||
to_static_wstring(long double value) BOOST_STATIC_STRING_COND_NOEXCEPT;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
@ -2903,12 +2903,11 @@ hash_value(
|
||||
return boost::hash_range(str.begin(), str.end());
|
||||
}
|
||||
#endif
|
||||
|
||||
} // static_string
|
||||
} // boost
|
||||
|
||||
#ifndef GENERATING_DOCUMENTATION
|
||||
// std::hash partial specialization for basic_static_string
|
||||
#endif
|
||||
namespace std
|
||||
{
|
||||
template <std::size_t N, typename CharT, typename Traits>
|
||||
|
Reference in New Issue
Block a user