Как в С++ с помощью препроцессора посчитать и преобразовать в строку?
Никак — препроцессор в принципе не выполняет арифметических действий. Разве что какое-нибудь лямбда-исчисление замутить…
Сами макросы конечно не вычисляют, но значение 3 + 3 таки вычисляется во время компиляции. Вот только строчку, где записано 6, из этого не сделаешь.