Возможно, просто если вам действительно нужен изменяемый аргумент (char*
, а не char const*
), вам нужно выделить новое хранилище в изменяемой памяти и клонировать туда содержимое постоянной памяти, еслиэто вписывается в ваше определение «convert».
auto const len = strlen(input);
auto const buf = std::unique_ptr<char[]>(new char[len + 1]);
memcpy(buf, input, len + 1);
Если вам действительно нужно char const*
и если вы C++17
или новее, вы можете изменить подпись на setArgument(std::string_view arg)
, сделав ее неправильной-доказательство.