[string.assign] (original) (raw)

21 Strings library [strings]

21.3 String classes [string.classes]

21.3.2 Class template basic_­string [basic.string]

21.3.2.6 Modifiers [string.modifiers]

21.3.2.6.3 basic_­string​::​assign [string.assign]

constexpr basic_string& assign(const basic_string& str);

Effects:Equivalent to: return *this = str;

constexpr basic_string& assign(basic_string&& str) noexcept(allocator_traits<Allocator>::propagate_on_container_move_assignment::value || allocator_traits<Allocator>::is_always_equal::value);

Effects:Equivalent to: return *this = std​::​move(str);

constexpr basic_string& assign(const basic_string& str, size_type pos, size_type n = npos);

Effects:Equivalent to:

return assign(basic_string_view<charT, traits>(str).substr(pos, n));

template<class T> constexpr basic_string& assign(const T& t);

Constraints:

Effects:Equivalent to:

basic_string_view<charT, traits> sv = t; return assign(sv.data(), sv.size());

template<class T> constexpr basic_string& assign(const T& t, size_type pos, size_type n = npos);

Constraints:

Effects:Equivalent to:

basic_string_view<charT, traits> sv = t; return assign(sv.substr(pos, n));

constexpr basic_string& assign(const charT* s, size_type n);

Preconditions: [s, s + n) is a valid range.

Effects:Replaces the string controlled by *this with a copy of the range [s, s + n).

constexpr basic_string& assign(const charT* s);

Effects:Equivalent to: return assign(s, traits​::​length(s));

constexpr basic_string& assign(initializer_list<charT> il);

Effects:Equivalent to: return assign(il.begin(), il.size());

constexpr basic_string& assign(size_type n, charT c);

Effects:Equivalent to:

clear(); resize(n, c); return *this;

template<class InputIterator> constexpr basic_string& assign(InputIterator first, InputIterator last);

Effects:Equivalent to: return assign(basic_­string(first, last, get_­allocator()));