我试图使用指向该结构成员的任意指针...但是没有任何效果;
代码1:
template <
typename Structure,
template <typename... Args>
typename Wrapper,
template <typename... Args>
typename Wrapper2,
typename... Args1,
void Structure::* ... Args2>
auto MembersContructer(Wrapper<Args1...> wrapper1, Wrapper2<Args2...> wrapper2)
-> TypesContainer<mi::member<Structure, Args1, Args2>...>;
无效结构:: * ... Args2
我尝试使用“可变参数类型的可变参数类型”)
代码2:
template <
typename Structure,
template <typename... Args>
typename Wrapper,
template <typename... Args>
typename Wrapper2,
typename... Args1,
(Args1 Structure::*) ... Args2>
auto MembersContructer(Wrapper<Args1...> wrapper1, Wrapper2<Args2...> wrapper2)
-> TypesContainer<mi::member<Structure, Args1, Args2>...>;
(Args1结构:: *)... Args2
希望有人能弄清楚我想要什么。
答案 0 :(得分:0)
使用c++17 placeholder auto for non-type template parameter:
template <
template <typename... Args> typename Wrapper,
template <auto... Args> typename Wrapper2,
typename... Args1,
auto... Args2
>
auto MembersContructer(Wrapper<Args1...> wrapper1, Wrapper2<Args2...> wrapper2);
请注意,无需存储Structure
。