forked from boostorg/static_string
Cleanup and update docs
This commit is contained in:
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2013-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
|
# Copyright (c) 2013-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
|
||||||
#
|
#
|
||||||
# Distributed under the Boost Software License, Version 1.0. (See accompanying
|
# Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
@ -2,14 +2,15 @@
|
|||||||
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" "../../../../tools/boostbook/dtd/boostbook.dtd">
|
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" "../../../../tools/boostbook/dtd/boostbook.dtd">
|
||||||
<!--
|
<!--
|
||||||
Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
|
Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
|
||||||
|
Copyright (c) 2019 Krystian Stasiowski (sdkrystian at gmail dot com)
|
||||||
|
|
||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
Official repository: https://github.com/vinniefalco/json
|
Official repository: https://github.com/boostorg/fixed_string
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<section id="json.index">
|
<section id="fixed_string.index">
|
||||||
<title>Index</title>
|
<title>Index</title>
|
||||||
<index/>
|
<index/>
|
||||||
</section>
|
</section>
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
Official repository: https://github.com/vinniefalco/fixed_string
|
Official repository: https://github.com/boostorg/fixed_string
|
||||||
]
|
]
|
||||||
|
|
||||||
[library Boost.FixedString
|
[library Boost.FixedString
|
||||||
[id json]
|
[id fixed_string]
|
||||||
[quickbook 1.6]
|
[quickbook 1.6]
|
||||||
[copyright 2016 - 2019 Vinnie Falco]
|
[copyright 2016 - 2019 Vinnie Falco]
|
||||||
[copyright 2019 Krystian Stasiowski]
|
[copyright 2019 Krystian Stasiowski]
|
||||||
@ -32,6 +32,8 @@
|
|||||||
[template include_file[path][^<'''<ulink url="../../../../'''[path]'''">'''[path]'''</ulink>'''>]]
|
[template include_file[path][^<'''<ulink url="../../../../'''[path]'''">'''[path]'''</ulink>'''>]]
|
||||||
[template issue[n] '''<ulink url="https://github.com/boostorg/beast/issues/'''[n]'''">#'''[n]'''</ulink>''']
|
[template issue[n] '''<ulink url="https://github.com/boostorg/beast/issues/'''[n]'''">#'''[n]'''</ulink>''']
|
||||||
|
|
||||||
|
[def __InputIterator__ [@https://en.cppreference.com/w/cpp/named_req/InputIterator ['InputIterator]]]
|
||||||
|
|
||||||
[/-----------------------------------------------------------------------------]
|
[/-----------------------------------------------------------------------------]
|
||||||
|
|
||||||
[section Introduction]
|
[section Introduction]
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
Official repository: https://github.com/boostorg/beast
|
Official repository: https://github.com/boostorg/fixed_string
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<informaltable frame="all">
|
<informaltable frame="all">
|
||||||
|
@ -1,36 +1,3 @@
|
|||||||
<!-- CLASS_DETAIL_TEMPLATE BEGIN -->
|
<!-- CLASS_DETAIL_TEMPLATE BEGIN -->
|
||||||
<xsl:when test="$normal-tparam = 'Allocator'"> <xsl:text>__Allocator__</xsl:text></xsl:when>
|
<xsl:when test="$normal-tparam = 'InputIterator'"><xsl:text>__InputIterator__</xsl:text></xsl:when>
|
||||||
<xsl:when test="$normal-tparam = 'AsyncStream'"> <xsl:text>__AsyncStream__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'AsyncReadStream'"> <xsl:text>__AsyncReadStream__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'AsyncWriteStream'"> <xsl:text>__AsyncWriteStream__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'Body'"> <xsl:text>__Body__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'BufferSequence'"> <xsl:text>__BufferSequence__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'BufferSequence'"> <xsl:text>__BufferSequence__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'CompletionCondition'"> <xsl:text>__CompletionCondition__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'CompletionHandler'"> <xsl:text>__CompletionHandler__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'CompletionToken'"> <xsl:text>__CompletionToken__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'ConnectCondition'"> <xsl:text>__ConnectCondition__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'ConnectHandler'"> <xsl:text>__ConnectHandler__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'ConstBufferSequence'"> <xsl:text>__ConstBufferSequence__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'DynamicBuffer'"> <xsl:text>__DynamicBuffer__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'EndpointSequence'"> <xsl:text>__EndpointSequence__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'ExecutionContext'"> <xsl:text>__ExecutionContext__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'Executor'"> <xsl:text>__Executor__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'Executor_'"> <xsl:text>__Executor__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'Executor1'"> <xsl:text>__Executor1__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'Executor2'"> <xsl:text>__Executor2__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'Fields'"> <xsl:text>__Fields__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'Handler'"> <xsl:text>__Handler__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'Handler_'"> <xsl:text>__Handler__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'IteratorConnectHandler'"> <xsl:text>__IteratorConnectHandler__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'MutableBufferSequence'"> <xsl:text>__MutableBufferSequence__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'Protocol'"> <xsl:text>__Protocol__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'RangeConnectHandler'"> <xsl:text>__RangeConnectHandler__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'RatePolicy'"> <xsl:text>__RatePolicy__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'ReadHandler'"> <xsl:text>__ReadHandler__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'Stream'"> <xsl:text>__Stream__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'SyncStream'"> <xsl:text>__SyncStream__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'SyncReadStream'"> <xsl:text>__SyncReadStream__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'SyncWriteStream'"> <xsl:text>__SyncWriteStream__</xsl:text></xsl:when>
|
|
||||||
<xsl:when test="$normal-tparam = 'WriteHandler'"> <xsl:text>__WriteHandler__</xsl:text></xsl:when>
|
|
||||||
<!-- CLASS_DETAIL_TEMPLATE END -->
|
<!-- CLASS_DETAIL_TEMPLATE END -->
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<!-- Variables (Edit for your project) -->
|
<!-- Variables (Edit for your project) -->
|
||||||
<xsl:variable name="doc-ref" select="'json.ref.'"/>
|
<xsl:variable name="doc-ref" select="'fixed_string.ref.'"/>
|
||||||
<xsl:variable name="doc-ns" select="'boost::json'"/>
|
<xsl:variable name="doc-ns" select="'boost::fixed_string'"/>
|
||||||
<xsl:variable name="debug" select="0"/>
|
<xsl:variable name="debug" select="0"/>
|
||||||
<xsl:variable name="private" select="0"/>
|
<xsl:variable name="private" select="0"/>
|
||||||
<!-- End Variables -->
|
<!-- End Variables -->
|
||||||
|
@ -1,19 +1,7 @@
|
|||||||
<!-- INCLUDES_FOOT_TEMPLATE BEGIN -->
|
<!-- INCLUDES_FOOT_TEMPLATE BEGIN -->
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="contains($file, 'boost/beast/core')">
|
<xsl:when test="contains($file, 'supercalifragilisticexpialidocious')">
|
||||||
<xsl:text>

Convenience header [include_file boost/beast/core.hpp]
</xsl:text>
|
<xsl:text>

Easter Egg
</xsl:text>
|
||||||
</xsl:when>
|
|
||||||
<xsl:when test="contains($file, 'boost/beast/http')">
|
|
||||||
<xsl:text>

Convenience header [include_file boost/beast/http.hpp]
</xsl:text>
|
|
||||||
</xsl:when>
|
|
||||||
<xsl:when test="contains($file, 'boost/beast/ssl')">
|
|
||||||
<xsl:text>

Convenience header [include_file boost/beast/ssl.hpp]
</xsl:text>
|
|
||||||
</xsl:when>
|
|
||||||
<xsl:when test="contains($file, 'boost/beast/websocket')">
|
|
||||||
<xsl:text>

Convenience header [include_file boost/beast/websocket.hpp]
</xsl:text>
|
|
||||||
</xsl:when>
|
|
||||||
<xsl:when test="contains($file, 'boost/beast/zlib')">
|
|
||||||
<xsl:text>

Convenience header [include_file boost/beast/zlib.hpp]
</xsl:text>
|
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
<!-- INCLUDES_FOOT_TEMPLATE END -->
|
<!-- INCLUDES_FOOT_TEMPLATE END -->
|
@ -159,11 +159,11 @@ raw_to_string(CharT* last, std::size_t size, Integer i)
|
|||||||
template<
|
template<
|
||||||
typename Traits,
|
typename Traits,
|
||||||
typename CharT,
|
typename CharT,
|
||||||
typename ForwardIt>
|
typename ForwardIterator>
|
||||||
inline
|
inline
|
||||||
ForwardIt
|
ForwardIterator
|
||||||
find_not_of(
|
find_not_of(
|
||||||
ForwardIt first, ForwardIt last, const CharT* str, std::size_t n) noexcept
|
ForwardIterator first, ForwardIterator last, const CharT* str, std::size_t n) noexcept
|
||||||
{
|
{
|
||||||
for (; first != last; ++first)
|
for (; first != last; ++first)
|
||||||
if (!Traits::find(str, n, *first))
|
if (!Traits::find(str, n, *first))
|
||||||
|
@ -131,13 +131,13 @@ public:
|
|||||||
CharT const* s);
|
CharT const* s);
|
||||||
|
|
||||||
/// Construct from a range of characters
|
/// Construct from a range of characters
|
||||||
template<class InputIt>
|
template<class InputIterator>
|
||||||
fixed_string(
|
fixed_string(
|
||||||
InputIt first,
|
InputIterator first,
|
||||||
InputIt last
|
InputIterator last
|
||||||
#ifndef GENERATING_DOCUMENTATION
|
#ifndef GENERATING_DOCUMENTATION
|
||||||
, typename std::enable_if<
|
, typename std::enable_if<
|
||||||
detail::is_input_iterator<InputIt>::value,
|
detail::is_input_iterator<InputIterator>::value,
|
||||||
iterator>::type* = 0
|
iterator>::type* = 0
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
@ -184,7 +184,7 @@ public:
|
|||||||
//
|
//
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
|
||||||
/** Copy assignment
|
/** Assign to the string.
|
||||||
|
|
||||||
If `*this` and `s` are the same object,
|
If `*this` and `s` are the same object,
|
||||||
this function has no effect.
|
this function has no effect.
|
||||||
@ -196,7 +196,9 @@ public:
|
|||||||
return assign(s);
|
return assign(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace the contents with a copy of `s`
|
/** Assign to the string.
|
||||||
|
|
||||||
|
Replace the contents with a copy of `s`
|
||||||
|
|
||||||
@throw std::length_error if `s.size() > max_size()`
|
@throw std::length_error if `s.size() > max_size()`
|
||||||
*/
|
*/
|
||||||
@ -208,7 +210,9 @@ public:
|
|||||||
return assign(s);
|
return assign(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace the contents with those of the null-terminated string `s`
|
/** Assign to the string.
|
||||||
|
|
||||||
|
Replace the contents with those of the null-terminated string `s`
|
||||||
|
|
||||||
@throw std::length_error if `Traits::length(s) > max_size()`
|
@throw std::length_error if `Traits::length(s) > max_size()`
|
||||||
*/
|
*/
|
||||||
@ -219,7 +223,10 @@ public:
|
|||||||
return assign(s);
|
return assign(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Assign from single character.
|
/** Assign to the string.
|
||||||
|
|
||||||
|
Assign from single character.
|
||||||
|
*/
|
||||||
fixed_string&
|
fixed_string&
|
||||||
operator=(
|
operator=(
|
||||||
CharT ch)
|
CharT ch)
|
||||||
@ -228,7 +235,10 @@ public:
|
|||||||
std::integral_constant<bool, (N>0)>{});
|
std::integral_constant<bool, (N>0)>{});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Assign from initializer list.
|
/** Assign to the string.
|
||||||
|
|
||||||
|
Assign from initializer list.
|
||||||
|
*/
|
||||||
fixed_string&
|
fixed_string&
|
||||||
operator=(
|
operator=(
|
||||||
std::initializer_list<CharT> ilist)
|
std::initializer_list<CharT> ilist)
|
||||||
@ -236,7 +246,10 @@ public:
|
|||||||
return assign(ilist);
|
return assign(ilist);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Assign from `string_view_type`.
|
/** Assign to the string.
|
||||||
|
|
||||||
|
Assign from `string_view_type`.
|
||||||
|
*/
|
||||||
fixed_string&
|
fixed_string&
|
||||||
operator=(
|
operator=(
|
||||||
string_view_type sv)
|
string_view_type sv)
|
||||||
@ -244,7 +257,9 @@ public:
|
|||||||
return assign(sv);
|
return assign(sv);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace the contents with `count` copies of character `ch`
|
/** Replace the contents.
|
||||||
|
|
||||||
|
Replace the contents with `count` copies of character `ch`
|
||||||
|
|
||||||
@throw std::length_error if `count > max_size()`
|
@throw std::length_error if `count > max_size()`
|
||||||
@return `*this`
|
@return `*this`
|
||||||
@ -254,7 +269,9 @@ public:
|
|||||||
size_type count,
|
size_type count,
|
||||||
CharT ch);
|
CharT ch);
|
||||||
|
|
||||||
/** Replace the contents with a copy of another `fixed_string`
|
/** Replace the contents.
|
||||||
|
|
||||||
|
Replace the contents with a copy of another `fixed_string`
|
||||||
|
|
||||||
@return `*this`
|
@return `*this`
|
||||||
*/
|
*/
|
||||||
@ -262,7 +279,9 @@ public:
|
|||||||
assign(
|
assign(
|
||||||
fixed_string const& s) noexcept;
|
fixed_string const& s) noexcept;
|
||||||
|
|
||||||
/** Replace the contents with a copy of another `fixed_string`
|
/** Replace the contents.
|
||||||
|
|
||||||
|
Replace the contents with a copy of another `fixed_string`
|
||||||
|
|
||||||
@throw std::length_error if `s.size() > max_size()`
|
@throw std::length_error if `s.size() > max_size()`
|
||||||
@return `*this`
|
@return `*this`
|
||||||
@ -278,7 +297,9 @@ public:
|
|||||||
return assign(s.data(), s.size());
|
return assign(s.data(), s.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace the contents with a copy of `count` characters starting at `npos` from `s`.
|
/** Replace the contents.
|
||||||
|
|
||||||
|
Replace the contents with a copy of `count` characters starting at `npos` from `s`.
|
||||||
|
|
||||||
@throw std::length_error if `count > max_size()`
|
@throw std::length_error if `count > max_size()`
|
||||||
@return `*this`
|
@return `*this`
|
||||||
@ -290,7 +311,9 @@ public:
|
|||||||
size_type pos,
|
size_type pos,
|
||||||
size_type count = npos);
|
size_type count = npos);
|
||||||
|
|
||||||
/** Replace the contents with the first `count` characters of `s`, including nulls.
|
/** Replace the contents.
|
||||||
|
|
||||||
|
Replace the contents with the first `count` characters of `s`, including nulls.
|
||||||
|
|
||||||
@throw std::length_error if `count > max_size()`
|
@throw std::length_error if `count > max_size()`
|
||||||
@return `*this`
|
@return `*this`
|
||||||
@ -300,7 +323,9 @@ public:
|
|||||||
CharT const* s,
|
CharT const* s,
|
||||||
size_type count);
|
size_type count);
|
||||||
|
|
||||||
/** Replace the contents with a copy of a null terminated string `s`
|
/** Replace the contents.
|
||||||
|
|
||||||
|
Replace the contents with a copy of a null terminated string `s`
|
||||||
|
|
||||||
@throw std::length_error if `Traits::length(s) > max_size()`
|
@throw std::length_error if `Traits::length(s) > max_size()`
|
||||||
@return `*this`
|
@return `*this`
|
||||||
@ -312,24 +337,28 @@ public:
|
|||||||
return assign(s, Traits::length(s));
|
return assign(s, Traits::length(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace the contents with a copy of characters from the range `(first, last)`
|
/** Replace the contents.
|
||||||
|
|
||||||
|
Replace the contents with a copy of characters from the range `(first, last)`
|
||||||
|
|
||||||
@throw std::length_error if `std::distance(first, last) > max_size()`
|
@throw std::length_error if `std::distance(first, last) > max_size()`
|
||||||
@return `*this`
|
@return `*this`
|
||||||
*/
|
*/
|
||||||
template<typename InputIt>
|
template<typename InputIterator>
|
||||||
#ifdef GENERATING_DOCUMENTATION
|
#ifdef GENERATING_DOCUMENTATION
|
||||||
fixed_string&
|
fixed_string&
|
||||||
#else
|
#else
|
||||||
typename std::enable_if<
|
typename std::enable_if<
|
||||||
detail::is_input_iterator<InputIt>::value,
|
detail::is_input_iterator<InputIterator>::value,
|
||||||
fixed_string&>::type
|
fixed_string&>::type
|
||||||
#endif
|
#endif
|
||||||
assign(
|
assign(
|
||||||
InputIt first,
|
InputIterator first,
|
||||||
InputIt last);
|
InputIterator last);
|
||||||
|
|
||||||
/** Replace the contents with the characters in an initializer list
|
/** Replace the contents.
|
||||||
|
|
||||||
|
Replace the contents with the characters in an initializer list
|
||||||
|
|
||||||
@throw std::length_error if `ilist.size() > max_size()`
|
@throw std::length_error if `ilist.size() > max_size()`
|
||||||
@return `*this`
|
@return `*this`
|
||||||
@ -341,7 +370,9 @@ public:
|
|||||||
return assign(ilist.begin(), ilist.end());
|
return assign(ilist.begin(), ilist.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace the contents with a copy of the characters from `string_view_type{t}`
|
/** Replace the contents.
|
||||||
|
|
||||||
|
Replace the contents with a copy of the characters from `string_view_type{t}`
|
||||||
|
|
||||||
@throw std::length_error if `string_view_type{t}.size() > max_size()`
|
@throw std::length_error if `string_view_type{t}.size() > max_size()`
|
||||||
*/
|
*/
|
||||||
@ -360,7 +391,9 @@ public:
|
|||||||
return assign(ss.data(), ss.size());
|
return assign(ss.data(), ss.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace the contents with a copy of the characters from `string_view_type{t}.substr(pos, count)`
|
/** Replace the contents.
|
||||||
|
|
||||||
|
Replace the contents with a copy of the characters from `string_view_type{t}.substr(pos, count)`
|
||||||
|
|
||||||
The range `[pos, count)` is extracted from the value
|
The range `[pos, count)` is extracted from the value
|
||||||
obtained by converting `t` to `string_view_type`,
|
obtained by converting `t` to `string_view_type`,
|
||||||
@ -661,7 +694,9 @@ public:
|
|||||||
void
|
void
|
||||||
clear();
|
clear();
|
||||||
|
|
||||||
/** Inserts `count` copies of character `ch` at the position `index`
|
/** Insert into the string.
|
||||||
|
|
||||||
|
Inserts `count` copies of character `ch` at the position `index`
|
||||||
|
|
||||||
@throw std::out_of_range if `index > size()`
|
@throw std::out_of_range if `index > size()`
|
||||||
@throw std::length_error if `size() + count > max_size()`
|
@throw std::length_error if `size() + count > max_size()`
|
||||||
@ -673,7 +708,9 @@ public:
|
|||||||
size_type count,
|
size_type count,
|
||||||
CharT ch);
|
CharT ch);
|
||||||
|
|
||||||
/** Inserts null-terminated string pointed to by `s` at the position `index`
|
/** Insert into the string.
|
||||||
|
|
||||||
|
Inserts null-terminated string pointed to by `s` at the position `index`
|
||||||
|
|
||||||
@throw std::out_of_range if `index > size()`
|
@throw std::out_of_range if `index > size()`
|
||||||
@throw std::length_error if `size() + count > max_size()`
|
@throw std::length_error if `size() + count > max_size()`
|
||||||
@ -687,7 +724,9 @@ public:
|
|||||||
return insert(index, s, Traits::length(s));
|
return insert(index, s, Traits::length(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Inserts the characters in the range `(s, s+count)` at the position `index`
|
/** Insert into the string.
|
||||||
|
|
||||||
|
Inserts the characters in the range `(s, s+count)` at the position `index`
|
||||||
|
|
||||||
The inserted string can contain null characters.
|
The inserted string can contain null characters.
|
||||||
|
|
||||||
@ -701,7 +740,9 @@ public:
|
|||||||
CharT const* s,
|
CharT const* s,
|
||||||
size_type count);
|
size_type count);
|
||||||
|
|
||||||
/** Inserts the contents of string view `sv` at the position `index`
|
/** Insert into the string.
|
||||||
|
|
||||||
|
Inserts the contents of string view `sv` at the position `index`
|
||||||
|
|
||||||
The inserted string can contain null characters.
|
The inserted string can contain null characters.
|
||||||
|
|
||||||
@ -717,7 +758,9 @@ public:
|
|||||||
return insert(index, sv.data(), sv.size());
|
return insert(index, sv.data(), sv.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Inserts the string `sv.substr(index_str, count)` at the position `index`
|
/** Insert into the string.
|
||||||
|
|
||||||
|
Inserts the string `sv.substr(index_str, count)` at the position `index`
|
||||||
|
|
||||||
The inserted string can contain null characters.
|
The inserted string can contain null characters.
|
||||||
|
|
||||||
@ -735,7 +778,9 @@ public:
|
|||||||
return insert(index, sv.substr(index_str, count));
|
return insert(index, sv.substr(index_str, count));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Inserts character `ch` before the character (if any) pointed by `pos`
|
/** Insert into the string.
|
||||||
|
|
||||||
|
Inserts character `ch` before the character (if any) pointed by `pos`
|
||||||
|
|
||||||
The inserted character can be null.
|
The inserted character can be null.
|
||||||
|
|
||||||
@ -750,7 +795,9 @@ public:
|
|||||||
return insert(pos, 1, ch);
|
return insert(pos, 1, ch);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Inserts `count` copies of character `ch` before the character (if any) pointed by `pos`
|
/** Insert into the string.
|
||||||
|
|
||||||
|
Inserts `count` copies of character `ch` before the character (if any) pointed by `pos`
|
||||||
|
|
||||||
The inserted characters can be null.
|
The inserted characters can be null.
|
||||||
|
|
||||||
@ -763,29 +810,33 @@ public:
|
|||||||
size_type count,
|
size_type count,
|
||||||
CharT ch);
|
CharT ch);
|
||||||
|
|
||||||
/** Inserts characters from the range `(first, last)` before the element (if any) pointed by `pos`
|
/** Insert into the string.
|
||||||
|
|
||||||
|
Inserts characters from the range `(first, last)` before the element (if any) pointed by `pos`
|
||||||
|
|
||||||
The inserted string can contain null characters.
|
The inserted string can contain null characters.
|
||||||
This function does not participate in overload resolution if
|
This function does not participate in overload resolution if
|
||||||
`InputIt` does not satisfy <em>LegacyInputIterator</em>
|
`InputIterator` does not satisfy <em>LegacyInputIterator</em>
|
||||||
|
|
||||||
@throw std::length_error if `size() + std::distance(first, last) > max_size()`
|
@throw std::length_error if `size() + std::distance(first, last) > max_size()`
|
||||||
@return An iterator to the first inserted character or pos if no insertion took place
|
@return An iterator to the first inserted character or pos if no insertion took place
|
||||||
*/
|
*/
|
||||||
template<typename InputIt>
|
template<typename InputIterator>
|
||||||
#if GENERATING_DOCUMENTATION
|
#if GENERATING_DOCUMENTATION
|
||||||
iterator
|
iterator
|
||||||
#else
|
#else
|
||||||
typename std::enable_if<
|
typename std::enable_if<
|
||||||
detail::is_input_iterator<InputIt>::value,
|
detail::is_input_iterator<InputIterator>::value,
|
||||||
iterator>::type
|
iterator>::type
|
||||||
#endif
|
#endif
|
||||||
insert(
|
insert(
|
||||||
const_iterator pos,
|
const_iterator pos,
|
||||||
InputIt first,
|
InputIterator first,
|
||||||
InputIt last);
|
InputIterator last);
|
||||||
|
|
||||||
/** Inserts elements from initializer list `ilist` before the element (if any) pointed by `pos`
|
/** Insert into the string.
|
||||||
|
|
||||||
|
Inserts elements from initializer list `ilist` before the element (if any) pointed by `pos`
|
||||||
|
|
||||||
The inserted string can contain null characters.
|
The inserted string can contain null characters.
|
||||||
|
|
||||||
@ -800,7 +851,9 @@ public:
|
|||||||
return insert(pos, ilist.begin(), ilist.end());
|
return insert(pos, ilist.begin(), ilist.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Inserts elements from `string_view{t}` at the position `index`
|
/** Insert into the string.
|
||||||
|
|
||||||
|
Inserts elements from `string_view{t}` at the position `index`
|
||||||
|
|
||||||
The inserted string can contain null characters.
|
The inserted string can contain null characters.
|
||||||
This function participates in overload resolution if
|
This function participates in overload resolution if
|
||||||
@ -825,7 +878,9 @@ public:
|
|||||||
size_type index,
|
size_type index,
|
||||||
T const& t);
|
T const& t);
|
||||||
|
|
||||||
/** Inserts elements from `string_view{t}.substr(index_str, count)` at the position `index`
|
/** Insert into the string.
|
||||||
|
|
||||||
|
Inserts elements from `string_view{t}.substr(index_str, count)` at the position `index`
|
||||||
|
|
||||||
The inserted string can contain null characters.
|
The inserted string can contain null characters.
|
||||||
This function participates in overload resolution if
|
This function participates in overload resolution if
|
||||||
@ -912,7 +967,9 @@ public:
|
|||||||
return insert(n_, count, ch);
|
return insert(n_, count, ch);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Appends the contents of string view `sv`
|
/** Append to the string.
|
||||||
|
|
||||||
|
Appends the contents of string view `sv`
|
||||||
|
|
||||||
The appended string can contain null characters.
|
The appended string can contain null characters.
|
||||||
|
|
||||||
@ -926,7 +983,9 @@ public:
|
|||||||
return append(sv.data(), sv.size());
|
return append(sv.data(), sv.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Appends the contents of `sv.substr(pos, count)`
|
/** Append to the string.
|
||||||
|
|
||||||
|
Appends the contents of `sv.substr(pos, count)`
|
||||||
|
|
||||||
The appended string can contain null characters.
|
The appended string can contain null characters.
|
||||||
|
|
||||||
@ -943,7 +1002,9 @@ public:
|
|||||||
return append(sv.substr(pos, count));
|
return append(sv.substr(pos, count));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Appends characters in the range `(s, s + count)`
|
/** Append to the string.
|
||||||
|
|
||||||
|
Appends characters in the range `(s, s + count)`
|
||||||
|
|
||||||
The appended string can contain null characters.
|
The appended string can contain null characters.
|
||||||
|
|
||||||
@ -955,7 +1016,9 @@ public:
|
|||||||
CharT const* s,
|
CharT const* s,
|
||||||
size_type count);
|
size_type count);
|
||||||
|
|
||||||
/** Appends the null-terminated character string pointed to by `s`
|
/** Append to the string.
|
||||||
|
|
||||||
|
Appends the null-terminated character string pointed to by `s`
|
||||||
|
|
||||||
The length of the string is determined by the first
|
The length of the string is determined by the first
|
||||||
null character using `Traits::length(s)`.
|
null character using `Traits::length(s)`.
|
||||||
@ -970,32 +1033,36 @@ public:
|
|||||||
return append(s, Traits::length(s));
|
return append(s, Traits::length(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Appends characters from the range `(first, last)`
|
/** Append to the string.
|
||||||
|
|
||||||
|
Appends characters from the range `(first, last)`
|
||||||
|
|
||||||
The inserted string can contain null characters.
|
The inserted string can contain null characters.
|
||||||
This function does not participate in overload resolution if
|
This function does not participate in overload resolution if
|
||||||
`InputIt` does not satisfy <em>LegacyInputIterator</em>
|
`InputIterator` does not satisfy <em>LegacyInputIterator</em>
|
||||||
|
|
||||||
@throw std::length_error if `size() + std::distance(first, last) > max_size()`
|
@throw std::length_error if `size() + std::distance(first, last) > max_size()`
|
||||||
@return `*this`
|
@return `*this`
|
||||||
*/
|
*/
|
||||||
template<typename InputIt>
|
template<typename InputIterator>
|
||||||
#if GENERATING_DOCUMENTATION
|
#if GENERATING_DOCUMENTATION
|
||||||
fixed_string&
|
fixed_string&
|
||||||
#else
|
#else
|
||||||
typename std::enable_if<
|
typename std::enable_if<
|
||||||
detail::is_input_iterator<InputIt>::value,
|
detail::is_input_iterator<InputIterator>::value,
|
||||||
fixed_string&>::type
|
fixed_string&>::type
|
||||||
#endif
|
#endif
|
||||||
append(
|
append(
|
||||||
InputIt first,
|
InputIterator first,
|
||||||
InputIt last)
|
InputIterator last)
|
||||||
{
|
{
|
||||||
insert(end(), first, last);
|
insert(end(), first, last);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Appends characters from initializer list `ilist`
|
/** Append to the string.
|
||||||
|
|
||||||
|
Appends characters from initializer list `ilist`
|
||||||
|
|
||||||
The appended string can contain null characters.
|
The appended string can contain null characters.
|
||||||
|
|
||||||
@ -1010,7 +1077,9 @@ public:
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Appends characters from `string_view{t}`
|
/** Append to the string.
|
||||||
|
|
||||||
|
Appends characters from `string_view{t}`
|
||||||
|
|
||||||
The appended string can contain null characters.
|
The appended string can contain null characters.
|
||||||
This function participates in overload resolution if
|
This function participates in overload resolution if
|
||||||
@ -1037,7 +1106,9 @@ public:
|
|||||||
return append(string_view{t});
|
return append(string_view{t});
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Appends characters from `string_view{t}.substr{pos, count}`
|
/** Append to the string.
|
||||||
|
|
||||||
|
Appends characters from `string_view{t}.substr{pos, count}`
|
||||||
|
|
||||||
The appended string can contain null characters.
|
The appended string can contain null characters.
|
||||||
This function participates in overload resolution if
|
This function participates in overload resolution if
|
||||||
@ -1067,6 +1138,10 @@ public:
|
|||||||
return append(string_view{t}.substr(pos, count));
|
return append(string_view{t}.substr(pos, count));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Append to the string.
|
||||||
|
|
||||||
|
@throw std::length_error if `size() + s.size() > max_size()`
|
||||||
|
*/
|
||||||
template<std::size_t M>
|
template<std::size_t M>
|
||||||
fixed_string&
|
fixed_string&
|
||||||
operator+=(
|
operator+=(
|
||||||
@ -1075,7 +1150,9 @@ public:
|
|||||||
return append(s.data(), s.size());
|
return append(s.data(), s.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Appends the given character `ch` to the end of the string.
|
/** Append to the string.
|
||||||
|
|
||||||
|
Appends the given character `ch` to the end of the string.
|
||||||
|
|
||||||
@throw std::length_error if `size() + 1 > max_size()`
|
@throw std::length_error if `size() + 1 > max_size()`
|
||||||
*/
|
*/
|
||||||
@ -1087,7 +1164,9 @@ public:
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Appends the null-terminated character string pointed to by `s`
|
/** Append to the string.
|
||||||
|
|
||||||
|
Appends the null-terminated character string pointed to by `s`
|
||||||
|
|
||||||
The length of the string is determined by the first
|
The length of the string is determined by the first
|
||||||
null character using `Traits::length(s)`.
|
null character using `Traits::length(s)`.
|
||||||
@ -1102,7 +1181,9 @@ public:
|
|||||||
return append(s);
|
return append(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Appends characters from initializer list `ilist`
|
/** Append to the string.
|
||||||
|
|
||||||
|
Appends characters from initializer list `ilist`
|
||||||
|
|
||||||
The appended string can contain null characters.
|
The appended string can contain null characters.
|
||||||
|
|
||||||
@ -1116,7 +1197,9 @@ public:
|
|||||||
return append(ilist);
|
return append(ilist);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Appends a copy of the characters from `string_view_type{t}`
|
/** Append to the string.
|
||||||
|
|
||||||
|
Appends a copy of the characters from `string_view_type{t}`
|
||||||
|
|
||||||
The appended string can contain null characters.
|
The appended string can contain null characters.
|
||||||
This function participates in overload resolution if
|
This function participates in overload resolution if
|
||||||
@ -1140,7 +1223,7 @@ public:
|
|||||||
return append(t);
|
return append(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Compare the string with another
|
/** Compare the string with another.
|
||||||
|
|
||||||
Compares this string to `s`.
|
Compares this string to `s`.
|
||||||
*/
|
*/
|
||||||
@ -1153,7 +1236,7 @@ public:
|
|||||||
s_, n_, &s.s_[0], s.n_);
|
s_, n_, &s.s_[0], s.n_);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Compare the string with another
|
/** Compare the string with another.
|
||||||
|
|
||||||
Compares a `[pos1, pos1+count1)` substring of this string to `s`. If `count1 > size() - pos1` the substring is `[pos1, size())`.
|
Compares a `[pos1, pos1+count1)` substring of this string to `s`. If `count1 > size() - pos1` the substring is `[pos1, size())`.
|
||||||
*/
|
*/
|
||||||
@ -1168,7 +1251,7 @@ public:
|
|||||||
substr(pos1, count1), s.data(), s.size());
|
substr(pos1, count1), s.data(), s.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Compare the string with another
|
/** Compare the string with another.
|
||||||
|
|
||||||
Compares a `[pos1, pos1+count1)` substring of this string to a substring `[pos2, pos2+count2)` of `s`.
|
Compares a `[pos1, pos1+count1)` substring of this string to a substring `[pos2, pos2+count2)` of `s`.
|
||||||
If `count1 > size() - pos1` the first substring is `[pos1, size())`. Likewise, if `count2 > s.size() - pos2` the
|
If `count1 > size() - pos1` the first substring is `[pos1, size())`. Likewise, if `count2 > s.size() - pos2` the
|
||||||
@ -1187,7 +1270,7 @@ public:
|
|||||||
substr(pos1, count1), s.substr(pos2, count2));
|
substr(pos1, count1), s.substr(pos2, count2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Compare the string with another
|
/** Compare the string with another.
|
||||||
|
|
||||||
Compares this string to the null-terminated character sequence beginning at the character pointed to by `s` with length `Traits::length(s)`.
|
Compares this string to the null-terminated character sequence beginning at the character pointed to by `s` with length `Traits::length(s)`.
|
||||||
*/
|
*/
|
||||||
@ -1199,7 +1282,7 @@ public:
|
|||||||
s_, n_, s, Traits::length(s));
|
s_, n_, s, Traits::length(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Compare the string with another
|
/** Compare the string with another.
|
||||||
|
|
||||||
Compares a `[pos1, pos1+count1)` substring of this string to the null-terminated character sequence beginning at the character pointed to by `s` with
|
Compares a `[pos1, pos1+count1)` substring of this string to the null-terminated character sequence beginning at the character pointed to by `s` with
|
||||||
length `Traits::length(s)`. If `count1 > size() - pos1` the substring is `[pos1, size())`.
|
length `Traits::length(s)`. If `count1 > size() - pos1` the substring is `[pos1, size())`.
|
||||||
@ -1214,7 +1297,7 @@ public:
|
|||||||
substr(pos1, count1), s, Traits::length(s));
|
substr(pos1, count1), s, Traits::length(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Compare the string with another
|
/** Compare the string with another.
|
||||||
|
|
||||||
Compares a `[pos1, pos1+count1)` substring of this string to the characters in the range `[s, s + count2)`. If `count1 > size() - pos1` the substring is `[pos1, size())`.
|
Compares a `[pos1, pos1+count1)` substring of this string to the characters in the range `[s, s + count2)`. If `count1 > size() - pos1` the substring is `[pos1, size())`.
|
||||||
*/
|
*/
|
||||||
@ -1229,7 +1312,7 @@ public:
|
|||||||
substr(pos1, count1), s, count2);
|
substr(pos1, count1), s, count2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Compare the string with another
|
/** Compare the string with another.
|
||||||
|
|
||||||
Compares this string to `s`.
|
Compares this string to `s`.
|
||||||
*/
|
*/
|
||||||
@ -1241,7 +1324,7 @@ public:
|
|||||||
s_, n_, s.data(), s.size());
|
s_, n_, s.data(), s.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Compare the string with another
|
/** Compare the string with another.
|
||||||
|
|
||||||
Compares a `[pos1, pos1+count1)` substring of this string to `s`. If `count1 > size() - pos1` the substring is `[pos1, size())`.
|
Compares a `[pos1, pos1+count1)` substring of this string to `s`. If `count1 > size() - pos1` the substring is `[pos1, size())`.
|
||||||
*/
|
*/
|
||||||
@ -1255,7 +1338,7 @@ public:
|
|||||||
substr(pos1, count1), s);
|
substr(pos1, count1), s);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Compare the string with another
|
/** Compare the string with another.
|
||||||
|
|
||||||
Replaces the part of the string indicated by `[pos1, pos1 + count1)` with a substring `[pos2, pos2 + count2)` of `t` after converting to `string_view_type`.
|
Replaces the part of the string indicated by `[pos1, pos1 + count1)` with a substring `[pos2, pos2 + count2)` of `t` after converting to `string_view_type`.
|
||||||
|
|
||||||
@ -1283,7 +1366,9 @@ public:
|
|||||||
string_view_type(t).substr(pos2, count2));
|
string_view_type(t).substr(pos2, count2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns a substring `(pos, pos + count)`. If the requested substring is greater than the size of the string, the returned substring is `[pos, size())`.
|
/** Returns a substring.
|
||||||
|
|
||||||
|
Returns a substring `(pos, pos + count)`. If the requested substring is greater than the size of the string, the returned substring is `[pos, size())`.
|
||||||
|
|
||||||
@throw std::out_of_range if `pos > size()`
|
@throw std::out_of_range if `pos > size()`
|
||||||
*/
|
*/
|
||||||
@ -1292,7 +1377,10 @@ public:
|
|||||||
size_type pos = 0,
|
size_type pos = 0,
|
||||||
size_type count = npos) const;
|
size_type count = npos) const;
|
||||||
|
|
||||||
/// Copy a substring `(pos, pos+count)` to character string pointed to by `dest`.
|
/** Copy a substring.
|
||||||
|
|
||||||
|
Copy a substring `(pos, pos+count)` to character string pointed to by `dest`.
|
||||||
|
*/
|
||||||
size_type
|
size_type
|
||||||
copy(
|
copy(
|
||||||
CharT* dest,
|
CharT* dest,
|
||||||
@ -1329,7 +1417,7 @@ public:
|
|||||||
swap(
|
swap(
|
||||||
fixed_string<M, CharT, Traits>& s);
|
fixed_string<M, CharT, Traits>& s);
|
||||||
|
|
||||||
/** Replace a subset of the string
|
/** Replace a subset of the string.
|
||||||
|
|
||||||
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with `s`
|
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with `s`
|
||||||
|
|
||||||
@ -1347,7 +1435,7 @@ public:
|
|||||||
return replace(pos1, n1, str.data(), str.size());
|
return replace(pos1, n1, str.data(), str.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace a subset of the string
|
/** Replace a subset of the string.
|
||||||
|
|
||||||
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with substring `[pos2, pos2 + n2)` of `str`
|
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with substring `[pos2, pos2 + n2)` of `str`
|
||||||
except that if `n2` is greater than `str.size()`, `[pos2, pos2 + str.size())` is used.
|
except that if `n2` is greater than `str.size()`, `[pos2, pos2 + str.size())` is used.
|
||||||
@ -1367,7 +1455,7 @@ public:
|
|||||||
return replace(pos1, n1, str.substr(pos2, n2));
|
return replace(pos1, n1, str.substr(pos2, n2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace a subset of the string
|
/** Replace a subset of the string.
|
||||||
|
|
||||||
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with `t` after converting to `string_view_type`.
|
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with `t` after converting to `string_view_type`.
|
||||||
|
|
||||||
@ -1397,7 +1485,7 @@ public:
|
|||||||
return replace(pos1, n1, sv.data(), sv.size());
|
return replace(pos1, n1, sv.data(), sv.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace a subset of the string
|
/** Replace a subset of the string.
|
||||||
|
|
||||||
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with substring `[pos2, pos2 + n2)` of `t`
|
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with substring `[pos2, pos2 + n2)` of `t`
|
||||||
after converting to `string_view_type`, except that if `n2` is greater than `t.size()`, `[pos2, pos2 + t.size())` is used.
|
after converting to `string_view_type`, except that if `n2` is greater than `t.size()`, `[pos2, pos2 + t.size())` is used.
|
||||||
@ -1430,7 +1518,7 @@ public:
|
|||||||
return replace(pos1, n1, sv.substr(pos2, n2));
|
return replace(pos1, n1, sv.substr(pos2, n2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace a subset of the string
|
/** Replace a subset of the string.
|
||||||
|
|
||||||
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with the characters in the range `[s, s + n2)`.
|
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with the characters in the range `[s, s + n2)`.
|
||||||
|
|
||||||
@ -1446,7 +1534,7 @@ public:
|
|||||||
size_type n2);
|
size_type n2);
|
||||||
|
|
||||||
|
|
||||||
/** Replace a subset of the string
|
/** Replace a subset of the string.
|
||||||
|
|
||||||
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with the characters in the range `[s, s + Traits::length(s))`.
|
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with the characters in the range `[s, s + Traits::length(s))`.
|
||||||
|
|
||||||
@ -1463,7 +1551,7 @@ public:
|
|||||||
return replace(pos, n1, s, Traits::length(s));
|
return replace(pos, n1, s, Traits::length(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace a subset of the string
|
/** Replace a subset of the string.
|
||||||
|
|
||||||
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with `n2` copies of `c`.
|
Replaces the part of the string indicated by `[pos1, pos1 + n1)` with `n2` copies of `c`.
|
||||||
|
|
||||||
@ -1478,7 +1566,7 @@ public:
|
|||||||
size_type n2,
|
size_type n2,
|
||||||
CharT c);
|
CharT c);
|
||||||
|
|
||||||
/** Replace a subset of the string
|
/** Replace a subset of the string.
|
||||||
|
|
||||||
Replaces the part of the string indicated by `[i1, i2)` with `s`
|
Replaces the part of the string indicated by `[i1, i2)` with `s`
|
||||||
|
|
||||||
@ -1495,7 +1583,7 @@ public:
|
|||||||
return replace(i1, i2, str.data(), str.size());
|
return replace(i1, i2, str.data(), str.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace a subset of the string
|
/** Replace a subset of the string.
|
||||||
|
|
||||||
Replaces the part of the string indicated by `[i1, i2)` with `t` after converting to `string_view_type`.
|
Replaces the part of the string indicated by `[i1, i2)` with `t` after converting to `string_view_type`.
|
||||||
|
|
||||||
@ -1525,7 +1613,7 @@ public:
|
|||||||
return replace(i1 - begin(), i2 - i1, sv.data(), sv.size());
|
return replace(i1 - begin(), i2 - i1, sv.data(), sv.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace a subset of the string
|
/** Replace a subset of the string.
|
||||||
|
|
||||||
Replaces the part of the string indicated by `[i1, i2)` with the characters in the range `[s, s + n)`.
|
Replaces the part of the string indicated by `[i1, i2)` with the characters in the range `[s, s + n)`.
|
||||||
|
|
||||||
@ -1543,7 +1631,7 @@ public:
|
|||||||
return replace(i1 - begin(), i2 - i1, s, n);
|
return replace(i1 - begin(), i2 - i1, s, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace a subset of the string
|
/** Replace a subset of the string.
|
||||||
|
|
||||||
Replaces the part of the string indicated by `[i1, i2)` with the characters in the range `[s, s + Traits::length(s))`.
|
Replaces the part of the string indicated by `[i1, i2)` with the characters in the range `[s, s + Traits::length(s))`.
|
||||||
|
|
||||||
@ -1560,7 +1648,7 @@ public:
|
|||||||
return replace(i1, i2, s, Traits::length(s));
|
return replace(i1, i2, s, Traits::length(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace a subset of the string
|
/** Replace a subset of the string.
|
||||||
|
|
||||||
Replaces the part of the string indicated by `[i1, i2)` with `n` copies of `c`.
|
Replaces the part of the string indicated by `[i1, i2)` with `n` copies of `c`.
|
||||||
|
|
||||||
@ -1578,7 +1666,7 @@ public:
|
|||||||
return replace(i1 - begin(), i2 - i1, n, c);
|
return replace(i1 - begin(), i2 - i1, n, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace a subset of the string
|
/** Replace a subset of the string.
|
||||||
|
|
||||||
Replaces the part of the string indicated by `[i1, i2)` with the characters in the range `[j1, j2)`.
|
Replaces the part of the string indicated by `[i1, i2)` with the characters in the range `[j1, j2)`.
|
||||||
|
|
||||||
@ -1603,7 +1691,7 @@ public:
|
|||||||
return replace(i1, i2, fixed_string(j1, j2));
|
return replace(i1, i2, fixed_string(j1, j2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Replace a subset of the string
|
/** Replace a subset of the string.
|
||||||
|
|
||||||
Replaces the part of the string indicated by `[i1, i2)` with the characters in the initializer list `il`.
|
Replaces the part of the string indicated by `[i1, i2)` with the characters in the initializer list `il`.
|
||||||
|
|
||||||
@ -1626,7 +1714,9 @@ public:
|
|||||||
//
|
//
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
|
||||||
/** Finds the first substring equal to `t`.
|
/** Finds the first substring.
|
||||||
|
|
||||||
|
Finds the first substring equal to `t`.
|
||||||
|
|
||||||
This function participates in overload resolution if
|
This function participates in overload resolution if
|
||||||
`T` is convertible to `string_view` and `T` is not
|
`T` is convertible to `string_view` and `T` is not
|
||||||
@ -1649,7 +1739,10 @@ public:
|
|||||||
return find(sv.data(), pos, sv.size());
|
return find(sv.data(), pos, sv.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Finds the first substring equal to `str`.
|
/** Finds the first substring.
|
||||||
|
|
||||||
|
Finds the first substring equal to `str`.
|
||||||
|
*/
|
||||||
template<std::size_t M>
|
template<std::size_t M>
|
||||||
size_type
|
size_type
|
||||||
find(
|
find(
|
||||||
@ -1659,14 +1752,19 @@ public:
|
|||||||
return find(str.data(), pos, str.size());
|
return find(str.data(), pos, str.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Finds the first substring equal to the range `(s, s + count)`. This range may contain null characters.
|
/** Finds the first substring.
|
||||||
|
|
||||||
|
Finds the first substring equal to the range `(s, s + count)`. This range may contain null characters.
|
||||||
|
*/
|
||||||
size_type
|
size_type
|
||||||
find(
|
find(
|
||||||
const CharT* s,
|
const CharT* s,
|
||||||
size_type pos,
|
size_type pos,
|
||||||
size_type n) const;
|
size_type n) const;
|
||||||
|
|
||||||
/** Finds the first substring equal to the character
|
/** Finds the first substring.
|
||||||
|
|
||||||
|
Finds the first substring equal to the character
|
||||||
string pointed to by `s`.
|
string pointed to by `s`.
|
||||||
|
|
||||||
The length of the string is determined by the first
|
The length of the string is determined by the first
|
||||||
@ -1680,7 +1778,7 @@ public:
|
|||||||
return find(s, pos, Traits::length(s));
|
return find(s, pos, Traits::length(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Finds the first character `c`
|
/// Finds the first character `c`.
|
||||||
size_type
|
size_type
|
||||||
find(
|
find(
|
||||||
CharT c,
|
CharT c,
|
||||||
@ -1690,7 +1788,9 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Finds the last substring equal to `t`.
|
/** Finds the last substring.
|
||||||
|
|
||||||
|
Finds the last substring equal to `t`.
|
||||||
|
|
||||||
This function participates in overload resolution if
|
This function participates in overload resolution if
|
||||||
`T` is convertible to `string_view` and `T` is not
|
`T` is convertible to `string_view` and `T` is not
|
||||||
@ -1713,7 +1813,10 @@ public:
|
|||||||
return rfind(sv.data(), pos, sv.size());
|
return rfind(sv.data(), pos, sv.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Finds the last substring equal to `str`.
|
/** Finds the last substring.
|
||||||
|
|
||||||
|
Finds the last substring equal to `str`.
|
||||||
|
*/
|
||||||
template<std::size_t M>
|
template<std::size_t M>
|
||||||
size_type
|
size_type
|
||||||
rfind(
|
rfind(
|
||||||
@ -1723,14 +1826,19 @@ public:
|
|||||||
return rfind(str.data(), pos, str.size());
|
return rfind(str.data(), pos, str.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Finds the last substring equal to the range `(s, s + count)`. This range may contain null characters.
|
/** Finds the last substring.
|
||||||
|
|
||||||
|
Finds the last substring equal to the range `(s, s + count)`. This range may contain null characters.
|
||||||
|
*/
|
||||||
size_type
|
size_type
|
||||||
rfind(
|
rfind(
|
||||||
const CharT* s,
|
const CharT* s,
|
||||||
size_type pos,
|
size_type pos,
|
||||||
size_type n) const;
|
size_type n) const;
|
||||||
|
|
||||||
/** Finds the last substring equal to the character
|
/** Finds the last substring.
|
||||||
|
|
||||||
|
Finds the last substring equal to the character
|
||||||
string pointed to by `s`.
|
string pointed to by `s`.
|
||||||
|
|
||||||
The length of the string is determined by the first
|
The length of the string is determined by the first
|
||||||
@ -1744,7 +1852,7 @@ public:
|
|||||||
return rfind(s, pos, Traits::length(s));
|
return rfind(s, pos, Traits::length(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Finds the last character `c`
|
/// Finds the last character `c`.
|
||||||
size_type
|
size_type
|
||||||
rfind(
|
rfind(
|
||||||
CharT c,
|
CharT c,
|
||||||
@ -1753,7 +1861,9 @@ public:
|
|||||||
return rfind(&c, pos, 1);
|
return rfind(&c, pos, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Finds the first character equal to one of the characters in `t`.
|
/** Finds the first character equal to any character in the string.
|
||||||
|
|
||||||
|
Finds the first character equal to one of the characters in `t`.
|
||||||
|
|
||||||
This function participates in overload resolution if
|
This function participates in overload resolution if
|
||||||
`T` is convertible to `string_view` and `T` is not
|
`T` is convertible to `string_view` and `T` is not
|
||||||
@ -1776,7 +1886,10 @@ public:
|
|||||||
return find_first_of(sv.data(), pos, sv.size());
|
return find_first_of(sv.data(), pos, sv.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Finds the first character equal to one of the characters in `str`.
|
/** Finds the first character equal to any character in the string.
|
||||||
|
|
||||||
|
Finds the first character equal to one of the characters in `str`.
|
||||||
|
*/
|
||||||
template<std::size_t M>
|
template<std::size_t M>
|
||||||
size_type
|
size_type
|
||||||
find_first_of(
|
find_first_of(
|
||||||
@ -1786,14 +1899,19 @@ public:
|
|||||||
return find_first_of(str.data(), pos, str.size());
|
return find_first_of(str.data(), pos, str.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Finds the first character equal to one of the characters in the range `(s, s + count)`. This range can include null characters.
|
/** Finds the first character equal to any character in the string.
|
||||||
|
|
||||||
|
Finds the first character equal to one of the characters in the range `(s, s + count)`. This range can include null characters.
|
||||||
|
*/
|
||||||
size_type
|
size_type
|
||||||
find_first_of(
|
find_first_of(
|
||||||
const CharT* s,
|
const CharT* s,
|
||||||
size_type pos,
|
size_type pos,
|
||||||
size_type n) const;
|
size_type n) const;
|
||||||
|
|
||||||
/** Finds the first character equal to one of the characters
|
/** Finds the first character equal to any character in the string.
|
||||||
|
|
||||||
|
Finds the first character equal to one of the characters
|
||||||
in character string pointed to by `s`.
|
in character string pointed to by `s`.
|
||||||
|
|
||||||
The length of the string is determined by the first
|
The length of the string is determined by the first
|
||||||
@ -1816,7 +1934,9 @@ public:
|
|||||||
return find_first_of(&c, pos, 1);
|
return find_first_of(&c, pos, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Finds the last character equal to one of the characters in `t`.
|
/** Finds the last character equal to any character in the string.
|
||||||
|
|
||||||
|
Finds the last character equal to one of the characters in `t`.
|
||||||
|
|
||||||
This function participates in overload resolution if
|
This function participates in overload resolution if
|
||||||
`T` is convertible to `string_view` and `T` is not
|
`T` is convertible to `string_view` and `T` is not
|
||||||
@ -1839,7 +1959,10 @@ public:
|
|||||||
return find_last_of(sv.data(), pos, sv.size());
|
return find_last_of(sv.data(), pos, sv.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Finds the last character equal to one of the characters in `str`.
|
/** Finds the last character equal to any character in the string.
|
||||||
|
|
||||||
|
Finds the last character equal to one of the characters in `str`.
|
||||||
|
*/
|
||||||
template<std::size_t M>
|
template<std::size_t M>
|
||||||
size_type
|
size_type
|
||||||
find_last_of(
|
find_last_of(
|
||||||
@ -1849,14 +1972,19 @@ public:
|
|||||||
return find_last_of(str.data(), pos, str.size());
|
return find_last_of(str.data(), pos, str.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Finds the last character equal to one of the characters in the range `(s, s + count)`. This range can include null characters.
|
/** Finds the last character equal to any character in the string.
|
||||||
|
|
||||||
|
Finds the last character equal to one of the characters in the range `(s, s + count)`. This range can include null characters.
|
||||||
|
*/
|
||||||
size_type
|
size_type
|
||||||
find_last_of(
|
find_last_of(
|
||||||
const CharT* s,
|
const CharT* s,
|
||||||
size_type pos,
|
size_type pos,
|
||||||
size_type n) const;
|
size_type n) const;
|
||||||
|
|
||||||
/** Finds the last character equal to one of the characters
|
/** Finds the last character equal to any character in the string.
|
||||||
|
|
||||||
|
Finds the last character equal to one of the characters
|
||||||
in character string pointed to by `s`.
|
in character string pointed to by `s`.
|
||||||
|
|
||||||
The length of the string is determined by the first
|
The length of the string is determined by the first
|
||||||
@ -1879,7 +2007,9 @@ public:
|
|||||||
return find_last_of(&c, pos, 1);
|
return find_last_of(&c, pos, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Finds the first character equal to none of characters in `t`.
|
/** Finds the first character equal to none the characters in the string.
|
||||||
|
|
||||||
|
Finds the first character equal to none of the characters in `t`.
|
||||||
|
|
||||||
This function participates in overload resolution if
|
This function participates in overload resolution if
|
||||||
`T` is convertible to `string_view` and `T` is not
|
`T` is convertible to `string_view` and `T` is not
|
||||||
@ -1902,7 +2032,10 @@ public:
|
|||||||
return find_first_not_of(sv.data(), pos, sv.size());
|
return find_first_not_of(sv.data(), pos, sv.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Finds the first character equal to none of the characters in `str`.
|
/** Finds the first character equal to none the characters in the string.
|
||||||
|
|
||||||
|
Finds the first character equal to none of the characters in `str`.
|
||||||
|
*/
|
||||||
template<std::size_t M>
|
template<std::size_t M>
|
||||||
size_type
|
size_type
|
||||||
find_first_not_of(
|
find_first_not_of(
|
||||||
@ -1912,14 +2045,19 @@ public:
|
|||||||
return find_first_not_of(str.data(), pos, str.size());
|
return find_first_not_of(str.data(), pos, str.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Finds the first character equal to none of characters in range `(s, s + count)`. This range can include null characters.
|
/** Finds the first character equal to none the characters in the string.
|
||||||
|
|
||||||
|
Finds the first character equal to none of characters in range `(s, s + count)`. This range can include null characters.
|
||||||
|
*/
|
||||||
size_type
|
size_type
|
||||||
find_first_not_of(
|
find_first_not_of(
|
||||||
const CharT* s,
|
const CharT* s,
|
||||||
size_type pos,
|
size_type pos,
|
||||||
size_type n) const;
|
size_type n) const;
|
||||||
|
|
||||||
/** Finds the first character equal to none of characters in
|
/** Finds the first character equal to none the characters in the string.
|
||||||
|
|
||||||
|
Finds the first character equal to none of the characters in
|
||||||
character string pointed to by `s`.
|
character string pointed to by `s`.
|
||||||
|
|
||||||
The length of the string is determined by the first
|
The length of the string is determined by the first
|
||||||
@ -1942,7 +2080,9 @@ public:
|
|||||||
return find_first_not_of(&c, pos, 1);
|
return find_first_not_of(&c, pos, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Finds the last character equal to none of the characters in `t`.
|
/** Finds the last character equal to none the characters in the string.
|
||||||
|
|
||||||
|
Finds the last character equal to none of the characters in `t`.
|
||||||
|
|
||||||
This function participates in overload resolution if
|
This function participates in overload resolution if
|
||||||
`T` is convertible to `string_view` and `T` is not
|
`T` is convertible to `string_view` and `T` is not
|
||||||
@ -1965,7 +2105,10 @@ public:
|
|||||||
return find_last_not_of(sv.data(), pos, sv.size());
|
return find_last_not_of(sv.data(), pos, sv.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Finds the last character equal to none of the characters in `str`.
|
/** Finds the last character equal to none the characters in the string.
|
||||||
|
|
||||||
|
Finds the last character equal to none of the characters in `str`.
|
||||||
|
*/
|
||||||
template<size_t M>
|
template<size_t M>
|
||||||
size_type
|
size_type
|
||||||
find_last_not_of(
|
find_last_not_of(
|
||||||
@ -1975,7 +2118,10 @@ public:
|
|||||||
return find_last_not_of(str.data(), pos, str.size());
|
return find_last_not_of(str.data(), pos, str.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Finds the last character equal to none of characters in range `(s, s + count)`. This range can include null characters.
|
/** Finds the last character equal to none the characters in the string.
|
||||||
|
|
||||||
|
Finds the last character equal to none of the characters in range `(s, s + count)`. This range can include null characters.
|
||||||
|
*/
|
||||||
size_type
|
size_type
|
||||||
find_last_not_of(
|
find_last_not_of(
|
||||||
const CharT* s,
|
const CharT* s,
|
||||||
@ -1983,7 +2129,9 @@ public:
|
|||||||
size_type n) const;
|
size_type n) const;
|
||||||
|
|
||||||
|
|
||||||
/** Finds the last character equal to none of characters in
|
/** Finds the last character equal to none the characters in the string.
|
||||||
|
|
||||||
|
Finds the last character equal to none of the characters in
|
||||||
character string pointed to by `s`.
|
character string pointed to by `s`.
|
||||||
|
|
||||||
The length of the string is determined by the first
|
The length of the string is determined by the first
|
||||||
|
@ -78,13 +78,13 @@ fixed_string(CharT const* s)
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<std::size_t N, typename CharT, typename Traits>
|
template<std::size_t N, typename CharT, typename Traits>
|
||||||
template<class InputIt>
|
template<class InputIterator>
|
||||||
fixed_string<N, CharT, Traits>::
|
fixed_string<N, CharT, Traits>::
|
||||||
fixed_string(
|
fixed_string(
|
||||||
InputIt first,
|
InputIterator first,
|
||||||
InputIt last,
|
InputIterator last,
|
||||||
typename std::enable_if<
|
typename std::enable_if<
|
||||||
detail::is_input_iterator<InputIt>::value,
|
detail::is_input_iterator<InputIterator>::value,
|
||||||
iterator>::type*)
|
iterator>::type*)
|
||||||
{
|
{
|
||||||
assign(first, last);
|
assign(first, last);
|
||||||
@ -205,14 +205,14 @@ assign(
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<std::size_t N, typename CharT, typename Traits>
|
template<std::size_t N, typename CharT, typename Traits>
|
||||||
template<class InputIt>
|
template<class InputIterator>
|
||||||
auto
|
auto
|
||||||
fixed_string<N, CharT, Traits>::
|
fixed_string<N, CharT, Traits>::
|
||||||
assign(
|
assign(
|
||||||
InputIt first,
|
InputIterator first,
|
||||||
InputIt last) ->
|
InputIterator last) ->
|
||||||
typename std::enable_if<
|
typename std::enable_if<
|
||||||
detail::is_input_iterator<InputIt>::value,
|
detail::is_input_iterator<InputIterator>::value,
|
||||||
fixed_string&>::type
|
fixed_string&>::type
|
||||||
{
|
{
|
||||||
std::size_t const n = std::distance(first, last);
|
std::size_t const n = std::distance(first, last);
|
||||||
@ -367,16 +367,16 @@ insert(
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<std::size_t N, typename CharT, typename Traits>
|
template<std::size_t N, typename CharT, typename Traits>
|
||||||
template<class InputIt>
|
template<class InputIterator>
|
||||||
auto
|
auto
|
||||||
fixed_string<N, CharT, Traits>::
|
fixed_string<N, CharT, Traits>::
|
||||||
insert(
|
insert(
|
||||||
const_iterator pos,
|
const_iterator pos,
|
||||||
InputIt first,
|
InputIterator first,
|
||||||
InputIt last) ->
|
InputIterator last) ->
|
||||||
typename std::enable_if<
|
typename std::enable_if<
|
||||||
detail::is_input_iterator<
|
detail::is_input_iterator<
|
||||||
InputIt>::value, iterator>::type
|
InputIterator>::value, iterator>::type
|
||||||
{
|
{
|
||||||
const size_type index = pos - begin();
|
const size_type index = pos - begin();
|
||||||
return insert(index, &*first, std::distance(first, last)).begin() + index;
|
return insert(index, &*first, std::distance(first, last)).begin() + index;
|
||||||
|
Reference in New Issue
Block a user