Могу ли я выполнить ::toupper
преобразование на той же строке, которая является входом?
т.е .:
std::transform(s.begin(), s.end(), s.begin(), ::toupper);
или мне нужна другая цель?
Да. Это законно и совершенно идиоматично. Это очень распространенный способ сделать это.
Других решений пока нет …