Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct INNERMOST{};
- template<int>
- struct param{};
- template<typename...>
- struct params;
- template<int... Ns>
- struct params< param<Ns>... >
- {};
- struct outer{
- template<int,typename,typename>
- struct getinner;
- template<int pos, int N, int... Ns>
- struct getinner<
- pos,
- param<N>,
- params<param<Ns>...>
- >
- {
- using type = typename getinner<
- pos-1,
- param<N>,
- params<param<Ns>...>
- >::type;
- };
- };
- template<>
- template<int N, int... Ns>
- struct outer::getinner<
- 0,
- param<N>,
- params<param<Ns>...>
- >
- {
- typedef INNERMOST type;
- };
- int main()
- {
- typedef outer::getinner<
- 7,
- param<1>,
- params<
- param<1>,
- param<2>,
- param<3>
- >
- >::type INNERMOST_TYPE;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement