prog.cpp:26:57: error: type/value mismatch at argument 2 in template parameter list for ‘template<template<class> class Pred, template<class ...> class Variadic, class T, class ... Ts> template<class, class> struct filter<Pred, Variadic, T, Ts ...>::Cons’
Cons<T, filter<Pred, Variadic, Ts...>::type >,
^
prog.cpp:26:57: error: expected a type, got ‘filter<Pred, Variadic, Ts ...>::type’
prog.cpp:27:43: error: template argument 2 is invalid
filter<Pred, Variadic, Ts...> >::type;
^
prog.cpp: In function ‘int main()’:
prog.cpp:32:19: error: ‘type’ is not a member of ‘filter<std::is_integral, std::tuple, int, float, long int>’
filter<std::is_integral, std::tuple, int, float, long>::type,
^
prog.cpp:32:19: error: ‘type’ is not a member of ‘filter<std::is_integral, std::tuple, int, float, long int>’
prog.cpp:33:41: error: template argument 1 is invalid
std::tuple<int, long> >::value, "");
^