forked from boostorg/static_string
Added docs for replace
This commit is contained in:
@ -1283,6 +1283,12 @@ public:
|
|||||||
swap(
|
swap(
|
||||||
fixed_string<M, CharT, Traits>& s);
|
fixed_string<M, CharT, Traits>& s);
|
||||||
|
|
||||||
|
/** Replaces the part of the string indicated by [pos1, pos1 + n1) with `s`
|
||||||
|
|
||||||
|
@throw std::out_of_range if `pos1 > size()`
|
||||||
|
@throw std::length_error if the resulting string exceeds `max_size()`
|
||||||
|
@return `*this`
|
||||||
|
*/
|
||||||
template<size_t M>
|
template<size_t M>
|
||||||
fixed_string&
|
fixed_string&
|
||||||
replace(
|
replace(
|
||||||
@ -1293,7 +1299,13 @@ public:
|
|||||||
return replace(pos1, n1, str.data(), str.size());
|
return replace(pos1, n1, str.data(), str.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 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.
|
||||||
|
|
||||||
|
@throw std::out_of_range if `pos1 > size()`
|
||||||
|
@throw std::length_error if the resulting string exceeds `max_size()`
|
||||||
|
@return `*this`
|
||||||
|
*/
|
||||||
fixed_string&
|
fixed_string&
|
||||||
replace(
|
replace(
|
||||||
size_type pos1,
|
size_type pos1,
|
||||||
@ -1305,6 +1317,16 @@ public:
|
|||||||
return replace(pos1, n1, str.substr(pos2, n2));
|
return replace(pos1, n1, str.substr(pos2, n2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Replaces the part of the string indicated by `[pos1, pos1 + n1)` with `t` after converting to `string_view_type`.
|
||||||
|
|
||||||
|
This function participates in overload resolution if
|
||||||
|
`T` is convertible to `string_view` and `T` is not
|
||||||
|
convertible to `CharT const*`.
|
||||||
|
|
||||||
|
@throw std::out_of_range if `pos1 > size()`
|
||||||
|
@throw std::length_error if the resulting string exceeds `max_size()`
|
||||||
|
@return `*this`
|
||||||
|
*/
|
||||||
template<typename T>
|
template<typename T>
|
||||||
#if GENERATING_DOCUMENTATION
|
#if GENERATING_DOCUMENTATION
|
||||||
fixed_string&
|
fixed_string&
|
||||||
@ -1323,6 +1345,17 @@ public:
|
|||||||
return replace(pos1, n1, sv.data(), sv.size());
|
return replace(pos1, n1, sv.data(), sv.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 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.
|
||||||
|
|
||||||
|
This function participates in overload resolution if
|
||||||
|
`T` is convertible to `string_view` and `T` is not
|
||||||
|
convertible to `CharT const*`.
|
||||||
|
|
||||||
|
@throw std::out_of_range if `pos1 > size()`
|
||||||
|
@throw std::length_error if the resulting string exceeds `max_size()`
|
||||||
|
@return `*this`
|
||||||
|
*/
|
||||||
template<typename T>
|
template<typename T>
|
||||||
#if GENERATING_DOCUMENTATION
|
#if GENERATING_DOCUMENTATION
|
||||||
fixed_string&
|
fixed_string&
|
||||||
@ -1343,6 +1376,12 @@ public:
|
|||||||
return replace(pos1, n1, sv.substr(pos2, n2));
|
return replace(pos1, n1, sv.substr(pos2, n2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Replaces the part of the string indicated by `[pos1, pos1 + n1)` with the characters in the range `[s, s + n2)`.
|
||||||
|
|
||||||
|
@throw std::out_of_range if `pos1 > size()`
|
||||||
|
@throw std::length_error if the resulting string exceeds `max_size()`
|
||||||
|
@return `*this`
|
||||||
|
*/
|
||||||
fixed_string&
|
fixed_string&
|
||||||
replace(
|
replace(
|
||||||
size_type pos,
|
size_type pos,
|
||||||
@ -1350,6 +1389,13 @@ public:
|
|||||||
const CharT* s,
|
const CharT* s,
|
||||||
size_type n2);
|
size_type n2);
|
||||||
|
|
||||||
|
|
||||||
|
/** Replaces the part of the string indicated by `[pos1, pos1 + n1)` with the characters in the range `[s, s + Traits::length(s))`.
|
||||||
|
|
||||||
|
@throw std::out_of_range if `pos1 > size()`
|
||||||
|
@throw std::length_error if the resulting string exceeds `max_size()`
|
||||||
|
@return `*this`
|
||||||
|
*/
|
||||||
fixed_string&
|
fixed_string&
|
||||||
replace(
|
replace(
|
||||||
size_type pos,
|
size_type pos,
|
||||||
@ -1359,6 +1405,12 @@ public:
|
|||||||
return replace(pos, n1, s, Traits::length(s));
|
return replace(pos, n1, s, Traits::length(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Replaces the part of the string indicated by `[pos1, pos1 + n1)` with `n2` copies of `c`.
|
||||||
|
|
||||||
|
@throw std::out_of_range if `pos1 > size()`
|
||||||
|
@throw std::length_error if the resulting string exceeds `max_size()`
|
||||||
|
@return `*this`
|
||||||
|
*/
|
||||||
fixed_string&
|
fixed_string&
|
||||||
replace(
|
replace(
|
||||||
size_type pos,
|
size_type pos,
|
||||||
@ -1366,6 +1418,12 @@ public:
|
|||||||
size_type n2,
|
size_type n2,
|
||||||
CharT c);
|
CharT c);
|
||||||
|
|
||||||
|
/** Replaces the part of the string indicated by [i1, i2) with `s`
|
||||||
|
|
||||||
|
@throw std::out_of_range if `pos1 > size()`
|
||||||
|
@throw std::length_error if the resulting string exceeds `max_size()`
|
||||||
|
@return `*this`
|
||||||
|
*/
|
||||||
fixed_string&
|
fixed_string&
|
||||||
replace(
|
replace(
|
||||||
const_iterator i1,
|
const_iterator i1,
|
||||||
@ -1375,6 +1433,16 @@ public:
|
|||||||
return replace(i1, i2, str.data(), str.size());
|
return replace(i1, i2, str.data(), str.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Replaces the part of the string indicated by `[i1, i2)` with `t` after converting to `string_view_type`.
|
||||||
|
|
||||||
|
This function participates in overload resolution if
|
||||||
|
`T` is convertible to `string_view` and `T` is not
|
||||||
|
convertible to `CharT const*`.
|
||||||
|
|
||||||
|
@throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size()]`
|
||||||
|
@throw std::length_error if the resulting string exceeds `max_size()`
|
||||||
|
@return `*this`
|
||||||
|
*/
|
||||||
template<typename T>
|
template<typename T>
|
||||||
#if GENERATING_DOCUMENTATION
|
#if GENERATING_DOCUMENTATION
|
||||||
fixed_string&
|
fixed_string&
|
||||||
@ -1393,6 +1461,12 @@ public:
|
|||||||
return replace(i1 - begin(), i2 - i1, sv.data(), sv.size());
|
return replace(i1 - begin(), i2 - i1, sv.data(), sv.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Replaces the part of the string indicated by `[i1, i2)` with the characters in the range `[s, s + n)`.
|
||||||
|
|
||||||
|
@throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size()]`
|
||||||
|
@throw std::length_error if the resulting string exceeds `max_size()`
|
||||||
|
@return `*this`
|
||||||
|
*/
|
||||||
fixed_string&
|
fixed_string&
|
||||||
replace(
|
replace(
|
||||||
const_iterator i1,
|
const_iterator i1,
|
||||||
@ -1403,6 +1477,12 @@ public:
|
|||||||
return replace(i1 - begin(), i2 - i1, s, n);
|
return replace(i1 - begin(), i2 - i1, s, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Replaces the part of the string indicated by `[i1, i2)` with the characters in the range `[s, s + Traits::length(s))`.
|
||||||
|
|
||||||
|
@throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size()]`
|
||||||
|
@throw std::length_error if the resulting string exceeds `max_size()`
|
||||||
|
@return `*this`
|
||||||
|
*/
|
||||||
fixed_string&
|
fixed_string&
|
||||||
replace(
|
replace(
|
||||||
const_iterator i1,
|
const_iterator i1,
|
||||||
@ -1412,6 +1492,12 @@ public:
|
|||||||
return replace(i1, i2, s, Traits::length(s));
|
return replace(i1, i2, s, Traits::length(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Replaces the part of the string indicated by `[i1, i2)` with `n` copies of `c`.
|
||||||
|
|
||||||
|
@throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size()]`
|
||||||
|
@throw std::length_error if the resulting string exceeds `max_size()`
|
||||||
|
@return `*this`
|
||||||
|
*/
|
||||||
fixed_string&
|
fixed_string&
|
||||||
replace(
|
replace(
|
||||||
const_iterator i1,
|
const_iterator i1,
|
||||||
@ -1422,6 +1508,12 @@ public:
|
|||||||
return replace(i1 - begin(), i2 - i1, n, c);
|
return replace(i1 - begin(), i2 - i1, n, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Replaces the part of the string indicated by `[i1, i2)` with the characters in the range `[j1, j2)`.
|
||||||
|
|
||||||
|
@throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size()]`
|
||||||
|
@throw std::length_error if the resulting string exceeds `max_size()`
|
||||||
|
@return `*this`
|
||||||
|
*/
|
||||||
template<typename InputIterator>
|
template<typename InputIterator>
|
||||||
#if GENERATING_DOCUMENTATION
|
#if GENERATING_DOCUMENTATION
|
||||||
fixed_string&
|
fixed_string&
|
||||||
@ -1439,6 +1531,12 @@ public:
|
|||||||
return replace(i1, i2, fixed_string(j1, j2));
|
return replace(i1, i2, fixed_string(j1, j2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Replaces the part of the string indicated by `[i1, i2)` with the characters in the initializer list `il`.
|
||||||
|
|
||||||
|
@throw std::out_of_range if `i1` and `i2` do not refer to elements within the range `[0, size()]`
|
||||||
|
@throw std::length_error if the resulting string exceeds `max_size()`
|
||||||
|
@return `*this`
|
||||||
|
*/
|
||||||
fixed_string&
|
fixed_string&
|
||||||
replace(
|
replace(
|
||||||
const_iterator i1,
|
const_iterator i1,
|
||||||
@ -1477,6 +1575,7 @@ public:
|
|||||||
return find(sv.data(), pos, sv.size());
|
return find(sv.data(), pos, sv.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Finds the first substring equal to `str`.
|
||||||
template<std::size_t M>
|
template<std::size_t M>
|
||||||
size_type
|
size_type
|
||||||
find(
|
find(
|
||||||
@ -1486,7 +1585,7 @@ 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 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,
|
||||||
@ -1507,7 +1606,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,
|
||||||
@ -1540,6 +1639,7 @@ public:
|
|||||||
return rfind(sv.data(), pos, sv.size());
|
return rfind(sv.data(), pos, sv.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Finds the last substring equal to `str`.
|
||||||
template<std::size_t M>
|
template<std::size_t M>
|
||||||
size_type
|
size_type
|
||||||
rfind(
|
rfind(
|
||||||
@ -1549,7 +1649,7 @@ 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 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,
|
||||||
@ -1570,7 +1670,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,
|
||||||
@ -1602,6 +1702,7 @@ 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`.
|
||||||
template<std::size_t M>
|
template<std::size_t M>
|
||||||
size_type
|
size_type
|
||||||
find_first_of(
|
find_first_of(
|
||||||
@ -1611,7 +1712,7 @@ 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 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,
|
||||||
@ -1632,7 +1733,7 @@ public:
|
|||||||
return find_first_of(s, pos, Traits::length(s));
|
return find_first_of(s, pos, Traits::length(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Finds the first character equal to `c`.
|
/// Finds the first character equal to `c`.
|
||||||
size_type
|
size_type
|
||||||
find_first_of(
|
find_first_of(
|
||||||
CharT c,
|
CharT c,
|
||||||
@ -1664,6 +1765,7 @@ 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`.
|
||||||
template<std::size_t M>
|
template<std::size_t M>
|
||||||
size_type
|
size_type
|
||||||
find_last_of(
|
find_last_of(
|
||||||
@ -1673,7 +1775,7 @@ 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 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,
|
||||||
@ -1694,7 +1796,7 @@ public:
|
|||||||
return find_last_of(s, pos, Traits::length(s));
|
return find_last_of(s, pos, Traits::length(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Finds the last character equal to `c`.
|
/// Finds the last character equal to `c`.
|
||||||
size_type
|
size_type
|
||||||
find_last_of(
|
find_last_of(
|
||||||
CharT c,
|
CharT c,
|
||||||
@ -1726,6 +1828,7 @@ 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`.
|
||||||
template<std::size_t M>
|
template<std::size_t M>
|
||||||
size_type
|
size_type
|
||||||
find_first_not_of(
|
find_first_not_of(
|
||||||
@ -1735,7 +1838,7 @@ 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 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,
|
||||||
@ -1756,7 +1859,7 @@ public:
|
|||||||
return find_first_not_of(s, pos, Traits::length(s));
|
return find_first_not_of(s, pos, Traits::length(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Finds the first character not equal to `c`.
|
/// Finds the first character not equal to `c`.
|
||||||
size_type
|
size_type
|
||||||
find_first_not_of(
|
find_first_not_of(
|
||||||
CharT c,
|
CharT c,
|
||||||
@ -1765,7 +1868,7 @@ 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 characters in `t`.
|
/** 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
|
||||||
@ -1788,6 +1891,7 @@ 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`.
|
||||||
template<size_t M>
|
template<size_t M>
|
||||||
size_type
|
size_type
|
||||||
find_last_not_of(
|
find_last_not_of(
|
||||||
@ -1797,7 +1901,7 @@ 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 of 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,
|
||||||
@ -1819,7 +1923,7 @@ public:
|
|||||||
return find_last_not_of(s, pos, Traits::length(s));
|
return find_last_not_of(s, pos, Traits::length(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Finds the last character not equal to `c`.
|
/// Finds the last character not equal to `c`.
|
||||||
size_type
|
size_type
|
||||||
find_last_not_of(
|
find_last_not_of(
|
||||||
CharT c,
|
CharT c,
|
||||||
@ -1828,6 +1932,7 @@ public:
|
|||||||
return find_last_not_of(&c, pos, 1);
|
return find_last_not_of(&c, pos, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns whether the string begins with `s`
|
||||||
bool
|
bool
|
||||||
starts_with(
|
starts_with(
|
||||||
string_view_type s) const noexcept
|
string_view_type s) const noexcept
|
||||||
@ -1836,6 +1941,7 @@ public:
|
|||||||
return n_ >= len && !Traits::compare(s_, s.data(), len);
|
return n_ >= len && !Traits::compare(s_, s.data(), len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns whether the string begins with `c`
|
||||||
bool
|
bool
|
||||||
starts_with(
|
starts_with(
|
||||||
CharT c) const noexcept
|
CharT c) const noexcept
|
||||||
@ -1843,14 +1949,16 @@ public:
|
|||||||
return !empty() && Traits::eq(front(), c);
|
return !empty() && Traits::eq(front(), c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns whether the string begins with `s`
|
||||||
bool
|
bool
|
||||||
starts_with(
|
starts_with(
|
||||||
const CharT* s) const
|
const CharT* s) const noexcept
|
||||||
{
|
{
|
||||||
const size_type len = Traits::length(s);
|
const size_type len = Traits::length(s);
|
||||||
return n_ >= len && !Traits::compare(s_, s, len);
|
return n_ >= len && !Traits::compare(s_, s, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns whether the string ends with `s`
|
||||||
bool
|
bool
|
||||||
ends_with(
|
ends_with(
|
||||||
string_view_type s) const noexcept
|
string_view_type s) const noexcept
|
||||||
@ -1859,6 +1967,7 @@ public:
|
|||||||
return n_ >= len && !Traits::compare(s_ + (n_ - len), s.data(), len);
|
return n_ >= len && !Traits::compare(s_ + (n_ - len), s.data(), len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns whether the string ends with `c`
|
||||||
bool
|
bool
|
||||||
ends_with(
|
ends_with(
|
||||||
CharT c) const noexcept
|
CharT c) const noexcept
|
||||||
@ -1866,9 +1975,10 @@ public:
|
|||||||
return !empty() && Traits::eq(back(), c);
|
return !empty() && Traits::eq(back(), c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns whether the string begins with `s`
|
||||||
bool
|
bool
|
||||||
ends_with(
|
ends_with(
|
||||||
const CharT* s) const
|
const CharT* s) const noexcept
|
||||||
{
|
{
|
||||||
const size_type len = Traits::length(s);
|
const size_type len = Traits::length(s);
|
||||||
return n_ >= len && !Traits::compare(s_ + (n_ - len), s, len);
|
return n_ >= len && !Traits::compare(s_ + (n_ - len), s, len);
|
||||||
@ -2193,7 +2303,7 @@ std::basic_ostream<CharT, Traits>&
|
|||||||
operator<<(std::basic_ostream<CharT, Traits>& os,
|
operator<<(std::basic_ostream<CharT, Traits>& os,
|
||||||
fixed_string<N, CharT, Traits> const& s)
|
fixed_string<N, CharT, Traits> const& s)
|
||||||
{
|
{
|
||||||
return os << string_view(s);
|
return os << string_view(s.data(), s.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user