RXL,
Так на
constexpr я понимаю как это можно легко и без фокусов сделать. Я понять не могу что не так в моей реализации через макросы.
Да и нет поддержки нормальной нового стандарта в RAD.
Джон,
Работать то он работает, да в рантайме. Основной вопрос в том - откуда в бинарнике берется строка TEST?
Идея то в чем:
если бы на этапе компиляции макрос раскрывался как надо, то в результате в бинарнике неоткуда взяться было этой строке, так как ее просто нет уже. Есть "отхоренная" поэлементно строка. Но тем не менее, хоть в str записывается верный результат, в бинарнике остается исходная строка да еще и в 4 экземплярах.
Я понимал бы такое поведение в результате "умной" оптимизации компилятором, хотя тоже тот еще трюк. Но сборку то провожу без оптимизаций, если верить в настройки в самом билдере.
Если сравнить результаты работы кода:
char str[] = MCR4(TEST);
и
char str[] = {'T'^42, 'E'^42, 'S'^42, 'T'^42, '\0'};
то в первом случае в бинарнике 4 строки TEST через пробелы, во втором случае - одна строка ~oy~.