Если вы не хотите изменять строку или копировать ее, у вас остается возможность форматировать ее только при необходимости. Это можно сделать с помощью небольшой утилиты:
struct date_format {
std::string const& str;
date_format(std::string const& str) : str(str) {}
friend std::ostream& operator<< (std::ostream& os, date_format const& df) {
return os.write(&df.str[4], 2)
.put('/')
.write(&df.str[6], 2)
.put('/')
.write(&df.str[0], 4);
}
};
Для использования, например, std::cout << date_format(source);
, посмотреть вживую .
В противном случае это определенно повлечет за собой копирование или перемещение символов.