まず、英語で大きな間違いを犯したらごめんなさい。私はフランス語ですが、できる限り最善を尽くして書いています。さて、私は C++11 可変個引数テンプレートに苦労しています。ちょっとややこしいことをしたい。
確かに、テンプレートが可変個引数テンプレートであることを知って、テンプレートの戻り値の型を特殊化したいと考えています。
私の目標は、次のようなものを達成することです:
l.callFun<int>("addition", 40, 1, 1);
特殊化は、ユーザーが必要とする戻り値の型に対応しています。これは Lua バインディングであるため、ユーザーが正確に指定しないと、戻り値の型を特定できません (明らかに、特殊化されていない場合のデフォルトは void 戻り値になります)。あと、Luaで呼ばれる関数の名前です。次に、3 つの整数が可変個引数テンプレートに対応します。
現在、私のテンプレートは次のようになっています。
template <typename Z, typename T, typename... U>
Z LuaScript::callFun(const std::string& name, const T& head, const U&... tail);
しかし、テンプレート関数の部分的な特殊化はできないようです。私を助けてくれる人はいますか?
どうもありがとうございました!