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

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
That would be undefined, because s is defined const and so doing const_cast and
then modifying it is undefined behaviour. However, this would be fine:

#include <string>
int foo (const std::string s);

int foo (std::string s)
{
   s = "I am long string over 15 chars";
   return s.size();
}

The const in the first declaration of foo is meaningless, it doesn't mean it is
necessarily const in the function definition.

Reply via email to