https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105329

--- Comment #16 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #11)
> Maybe
> 
>       _GLIBCXX20_CONSTEXPR
>       basic_string&
>       assign(const _CharT* __s)
>       {
>         __glibcxx_requires_string(__s);
>         return _M_replace(size_type(0), this->size(), __s,
>                           traits_type::length(__s));
>       }
> 
> isn't the most efficient way to assign a string (constant) looking at

For string constant sure, but unless we know that __s points to a string
literal, we need to do those overlap checks I'm afraid.
Or is something like:
void g (std::string& s)
{
  s = s.c_str() + 16;
}
invalid if s is before known to contain a string longer than 16 chars?

Reply via email to