template<std::size_t N2>
basic_string& assign(basic_string<T, N2, Traits> const& str);
#include <sprout/string.hpp>
#include <sprout/assert.hpp>
using namespace sprout;
auto x = string<8>("homuhomu");
SPROUT_STATIC_CONSTEXPR auto y = string<8>("madocchi");
int main() {
x.assign(y);
SPROUT_ASSERT_MSG(x == y, "y is assigned to x.");
}
template<std::size_t N2>
basic_string& assign(basic_string<T, N2, Traits> const& str, size_type pos, size_type n);
basic_string& assign(value_type const* s, size_type n);
basic_string& assign(value_type const* s);
basic_string& assign(size_type n, value_type c);
template<typename InputIterator>
basic_string& assign(InputIterator first, InputIterator last);