Вам необходимо использовать переменную замены в строке fmt
. Если я правильно понимаю документацию, то при отсутствии поля флагов вы захотите использовать строку формата Boost-Extended .
На этом подъязыке вы используете $&
для обозначения того, что было найдено, поэтому вы должны попробовать определить fmt
как:
std::basic_string<char> fmt = " $& ";
Это должно изменить каждую пунктуацию на тот же символ, окруженный пробелами.