Очень короткий ответ: вы не можете.
На самом деле есть три разные вещи: - выполнение во время компиляции (иначе метапрограммирование), которое выполняется с помощью MPL.Они работают только с определениями типов - выполнение во время выполнения (иначе обычное программирование), которое является простым C ++ (на тот момент все типы определены) - объявления переменных
Вы хотите использовать MPL (время компиляции)чтобы сгенерировать некоторый код C ++ (объявление переменной) и выполнить некоторое время выполнения (инициализация переменных).
Возможно, вы захотите взглянуть на boost :: fusion (fusion означает объединение операций во время компиляции и во время выполнения).Если вы объявите свои три переменные в boost :: fusion, а также три строки, то вы можете использовать boost :: fusion :: transform.Но я не уверен, что ты этого хочешь