【问题标题】:Calling Microsoft::WRL::Make for a constructor with more than 9 arguments为具有超过 9 个参数的构造函数调用 Microsoft::WRL::Make
【发布时间】:2016-05-14 10:43:52
【问题描述】:
【问题讨论】:
标签:
c++
windows-runtime
wrl
【解决方案1】:
FWIW,这是我目前的工作解决方案:
template <typename... Types>
MyClass(std::tuple<Types...> args) :
MyClass(args, std::make_integer_sequence<size_t, sizeof...(Types)>())
{
}
template <typename... Types, size_t... Indices>
MyClass(std::tuple<Types...>& args, std::integer_sequence<size_t, Indices...>) :
MyClass(std::get<Indices>(std::move(args))...)
{
}
构造
auto ptr = Make<MyClass>(std::forward_as_tuple(...));
远非理想,但在最坏的情况下它会做......