Мне жутко не хотелось завязывать проект на какие-то дополнительные утилиты. Пихать в репозиторий код, который может быть сгенерирован — плохо, а настраивать cmake чтобы использовал сторонние программы при сборке — лень.
А еще было интересно, можно ли решить эту задачу, не прибегая к генераторам кода, используя только средствами языка.
Чтобы не удалялся из памяти при выходе из функции, позже он удаляется в деструкторе util::Lua. Можно было бы сделать еще одну шаблонную функцию (с кучей специализаций), на момент написания мне проще было обойтись лямбдой.
Шаблоны с переменным количеством аргументов на примере обертки для Lua