fork download
  1. template<template<class...> class TT, class ArgsT>
  2. struct make_over;
  3.  
  4. template<template<class...> class TT, template<class...> class ArgsT, class... Ts>
  5. struct make_over<TT, ArgsT<Ts...>>{ using type = ArgsT<TT<Ts>...>; };
  6.  
  7. template<template<class...> class TT, class ArgsT>
  8. using MakeOver = typename make_over<TT, ArgsT>::type;
  9.  
  10. #include <tuple>
  11. #include <type_traits>
  12.  
  13. template<class> struct X{};
  14.  
  15. static_assert(std::is_same<MakeOver<X, std::tuple<int, float, bool>>,
  16. std::tuple<X<int>, X<float>, X<bool>>>(), "...");
  17.  
  18. int main(){}
Success #stdin #stdout 0s 2848KB
stdin
Standard input is empty
stdout
Standard output is empty