3
所以我現在有類似這樣的代碼:在C++ 11的lambdas中使用封閉函數中的模板類型可以嗎?
(注意:不是實際的代碼,只需從簡潔有點漫長而複雜的方法相比下來)
template<typename ArgT0, typename ArgT1, typename FuncT>
static void addMethod(const std::string& name, FuncT func)
{
Method script_func = [&](const Arguments& args) -> Value
{
func(UnsafeAnyCast<ArgT0>(args[0]),UnsafeAnyCast<ArgT1>(args[1]));
return Value::Undefined();
}
_prototype->Set(name, script_func);
}
它正常工作,在Visual Studio 2010年,但我知道這是遠遠不能保證它是符合標準的C++。至於在lambda中使用模板參數有什麼問題嗎?
什麼是「爭」? – Jagannath
它應該與問題無關,但參數是通過函數調用以嵌入式腳本語言傳遞的參數的容器類。我的問題是在lambda中是否符合標準要使用ArgT0和ArgT1模板類型。 – Gerald
我明白這個問題。由於參數在函數的任何地方都沒有出現,所以我問了一下。 – Jagannath