Во-первых, извините, если я делаю большие английские ошибки, я французский, но я стараюсь писать как можно лучше! Ну, я борюсь с C++ 11 вариационным шаблоном. Я хочу сделать что-то немного сложное.Специализирующийся тип возврата для вариационного шаблона
Действительно, я хочу специализировать тип возврата моего шаблона, зная, что это вариационный шаблон.
Моя цель состоит в том, чтобы добиться чего-то вроде:
l.callFun<int>("addition", 40, 1, 1);
специализация соответствует типу возврата, которую пользователь. Это привязка Lua, поэтому я не могу определить тип возвращаемого значения, если пользователь не уточняет его (очевидно, по умолчанию, если нет специализации, будет пустое возвращение). Позже это имя функции, которая вызывается в Lua. Затем 3 целых числа соответствуют моему вариационному шаблону.
Прямо сейчас, мой шаблон выглядит так:
template <typename Z, typename T, typename... U>
Z LuaScript::callFun(const std::string& name, const T& head, const U&... tail);
Но, похоже, что я не могу сделать частичную специализацию шаблонной функции. Есть ли кто-нибудь, кто мог бы мне помочь?
спасибо!
Итак, какая частичная специализация вы хотите написать? Вы можете частично указать аргументы шаблона при вызове, но это совсем другое дело. –
То, что я хочу специализировать, это тип возврата! – Theo13
Я думаю, вы имеете в виду, что хотите параметризовать возвращаемый тип;). В моем ответе я включил ссылку на статью, посвященную частичной специализации, если вы хотите узнать больше об этом. –