C++ - компилируемый язык. Соответственно, вы содержимое строки в нем никак не исполните, только если не напишите свой интерпретатор или не скомпилируете код в строке как-то подобно JIT. Можно подключить библиотеку с какой-нибудь Lua и код на Lua исполнять. Или подгружать в специально выделенную память скомпилированный заранее (или библиотекой) машинный код и передавать управление ему (но это надо знать ассемблер, про страницы памяти, API операционной системы и все такое. Это очень сложно). Вообще, C++ - не лучший выбор для динамической подгрузки кода.
defineCode(std::cout << 13 << std::endl); // work
Работает, потому что тут макрос просто подставляет код в скобках вместо себя и он компилируется и выполняется.
defineCode(stringLine);
заменяется просто на stringLine
, что есть бессмысленное выражение, вырезаемое еще на этапе компиляции.