Skip to content

Instantly share code, notes, and snippets.

@schiller-manuel
Last active August 29, 2015 14:24
Show Gist options
  • Select an option

  • Save schiller-manuel/3f38578bb0d0294e814b to your computer and use it in GitHub Desktop.

Select an option

Save schiller-manuel/3f38578bb0d0294e814b to your computer and use it in GitHub Desktop.
In file included from thrust_variadic_tuple_test.cpp:2:
In file included from /tmp/thrust-variadic/thrust/tuple.h:34:
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:66:23: error: no type named 'head_type' in 'thrust::null_type'
typedef typename T::head_type type;
~~~~~~~~~~~~^~~~~~~~~
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<0, thrust::null_type>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<1, thrust::detail::cons<int, thrust::null_type> >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<2, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:126:28: note: in instantiation of template class 'thrust::tuple_element<3, thrust::detail::cons<int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > > >' requested here
typename tuple_element<N, detail::cons<HT, TT> >::type
^
thrust_variadic_tuple_test.cpp:43:15: note: while substituting deduced template arguments into function template 'get' [with N = 3, HT = int, TT = thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> >]
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
In file included from thrust_variadic_tuple_test.cpp:2:
/tmp/thrust-variadic/thrust/tuple.h:74:25: error: no type named 'tail_type' in 'thrust::null_type'
typedef typename T::tail_type Next;
~~~~~~~~~~~~^~~~~~~~~
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<1, thrust::null_type>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<2, thrust::detail::cons<int, thrust::null_type> >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<3, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:126:28: note: in instantiation of template class 'thrust::tuple_element<4, thrust::detail::cons<int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > > >' requested here
typename tuple_element<N, detail::cons<HT, TT> >::type
^
thrust_variadic_tuple_test.cpp:43:15: note: while substituting deduced template arguments into function template 'get' [with N = 4, HT = int, TT = thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> >]
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
In file included from thrust_variadic_tuple_test.cpp:2:
In file included from /tmp/thrust-variadic/thrust/tuple.h:34:
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:66:20: error: type 'int' cannot be used prior to '::' because it has no members
typedef typename T::head_type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<0, int>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<1, thrust::null_type>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<2, thrust::detail::cons<int, thrust::null_type> >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<3, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:126:28: note: in instantiation of template class 'thrust::tuple_element<4, thrust::detail::cons<int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > > >' requested here
typename tuple_element<N, detail::cons<HT, TT> >::type
^
thrust_variadic_tuple_test.cpp:43:15: note: while substituting deduced template arguments into function template 'get' [with N = 4, HT = int, TT = thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> >]
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
In file included from thrust_variadic_tuple_test.cpp:2:
/tmp/thrust-variadic/thrust/tuple.h:74:25: error: no type named 'tail_type' in 'thrust::null_type'
typedef typename T::tail_type Next;
~~~~~~~~~~~~^~~~~~~~~
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<2, thrust::null_type>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<3, thrust::detail::cons<int, thrust::null_type> >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<4, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:126:28: note: in instantiation of template class 'thrust::tuple_element<5, thrust::detail::cons<int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > > >' requested here
typename tuple_element<N, detail::cons<HT, TT> >::type
^
thrust_variadic_tuple_test.cpp:43:15: note: while substituting deduced template arguments into function template 'get' [with N = 5, HT = int, TT = thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> >]
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
In file included from thrust_variadic_tuple_test.cpp:2:
/tmp/thrust-variadic/thrust/tuple.h:74:22: error: type 'int' cannot be used prior to '::' because it has no members
typedef typename T::tail_type Next;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<1, int>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<2, thrust::null_type>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<3, thrust::detail::cons<int, thrust::null_type> >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<4, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:126:28: note: in instantiation of template class 'thrust::tuple_element<5, thrust::detail::cons<int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > > >' requested here
typename tuple_element<N, detail::cons<HT, TT> >::type
^
thrust_variadic_tuple_test.cpp:43:15: note: while substituting deduced template arguments into function template 'get' [with N = 5, HT = int, TT = thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> >]
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
In file included from thrust_variadic_tuple_test.cpp:2:
/tmp/thrust-variadic/thrust/tuple.h:74:25: error: no type named 'tail_type' in 'thrust::null_type'
typedef typename T::tail_type Next;
~~~~~~~~~~~~^~~~~~~~~
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<3, thrust::null_type>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<4, thrust::detail::cons<int, thrust::null_type> >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<5, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:126:28: note: in instantiation of template class 'thrust::tuple_element<6, thrust::detail::cons<int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > > >' requested here
typename tuple_element<N, detail::cons<HT, TT> >::type
^
thrust_variadic_tuple_test.cpp:43:15: note: while substituting deduced template arguments into function template 'get' [with N = 6, HT = int, TT = thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> >]
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
In file included from thrust_variadic_tuple_test.cpp:2:
/tmp/thrust-variadic/thrust/tuple.h:74:22: error: type 'int' cannot be used prior to '::' because it has no members
typedef typename T::tail_type Next;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<2, int>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<3, thrust::null_type>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<4, thrust::detail::cons<int, thrust::null_type> >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<5, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:126:28: note: in instantiation of template class 'thrust::tuple_element<6, thrust::detail::cons<int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > > >' requested here
typename tuple_element<N, detail::cons<HT, TT> >::type
^
thrust_variadic_tuple_test.cpp:43:15: note: while substituting deduced template arguments into function template 'get' [with N = 6, HT = int, TT = thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> >]
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
In file included from thrust_variadic_tuple_test.cpp:2:
/tmp/thrust-variadic/thrust/tuple.h:74:25: error: no type named 'tail_type' in 'thrust::null_type'
typedef typename T::tail_type Next;
~~~~~~~~~~~~^~~~~~~~~
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<4, thrust::null_type>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<5, thrust::detail::cons<int, thrust::null_type> >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<6, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:126:28: note: in instantiation of template class 'thrust::tuple_element<7, thrust::detail::cons<int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > > >' requested here
typename tuple_element<N, detail::cons<HT, TT> >::type
^
thrust_variadic_tuple_test.cpp:43:15: note: while substituting deduced template arguments into function template 'get' [with N = 7, HT = int, TT = thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> >]
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
In file included from thrust_variadic_tuple_test.cpp:2:
/tmp/thrust-variadic/thrust/tuple.h:74:22: error: type 'int' cannot be used prior to '::' because it has no members
typedef typename T::tail_type Next;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<3, int>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<4, thrust::null_type>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<5, thrust::detail::cons<int, thrust::null_type> >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<6, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:126:28: note: in instantiation of template class 'thrust::tuple_element<7, thrust::detail::cons<int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > > >' requested here
typename tuple_element<N, detail::cons<HT, TT> >::type
^
thrust_variadic_tuple_test.cpp:43:15: note: while substituting deduced template arguments into function template 'get' [with N = 7, HT = int, TT = thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> >]
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
In file included from thrust_variadic_tuple_test.cpp:2:
/tmp/thrust-variadic/thrust/tuple.h:74:25: error: no type named 'tail_type' in 'thrust::null_type'
typedef typename T::tail_type Next;
~~~~~~~~~~~~^~~~~~~~~
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<5, thrust::null_type>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<6, thrust::detail::cons<int, thrust::null_type> >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<7, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:126:28: note: in instantiation of template class 'thrust::tuple_element<8, thrust::detail::cons<int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > > >' requested here
typename tuple_element<N, detail::cons<HT, TT> >::type
^
thrust_variadic_tuple_test.cpp:43:15: note: while substituting deduced template arguments into function template 'get' [with N = 8, HT = int, TT = thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> >]
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
In file included from thrust_variadic_tuple_test.cpp:2:
/tmp/thrust-variadic/thrust/tuple.h:74:22: error: type 'int' cannot be used prior to '::' because it has no members
typedef typename T::tail_type Next;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<4, int>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<5, thrust::null_type>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<6, thrust::detail::cons<int, thrust::null_type> >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<7, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:126:28: note: in instantiation of template class 'thrust::tuple_element<8, thrust::detail::cons<int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > > >' requested here
typename tuple_element<N, detail::cons<HT, TT> >::type
^
thrust_variadic_tuple_test.cpp:43:15: note: while substituting deduced template arguments into function template 'get' [with N = 8, HT = int, TT = thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> >]
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
In file included from thrust_variadic_tuple_test.cpp:2:
/tmp/thrust-variadic/thrust/tuple.h:74:25: error: no type named 'tail_type' in 'thrust::null_type'
typedef typename T::tail_type Next;
~~~~~~~~~~~~^~~~~~~~~
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<6, thrust::null_type>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<7, thrust::detail::cons<int, thrust::null_type> >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<8, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:126:28: note: in instantiation of template class 'thrust::tuple_element<9, thrust::detail::cons<int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > > >' requested here
typename tuple_element<N, detail::cons<HT, TT> >::type
^
thrust_variadic_tuple_test.cpp:43:15: note: while substituting deduced template arguments into function template 'get' [with N = 9, HT = int, TT = thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> >]
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
In file included from thrust_variadic_tuple_test.cpp:2:
/tmp/thrust-variadic/thrust/tuple.h:74:22: error: type 'int' cannot be used prior to '::' because it has no members
typedef typename T::tail_type Next;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<5, int>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<6, thrust::null_type>' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<7, thrust::detail::cons<int, thrust::null_type> >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:79:22: note: in instantiation of template class 'thrust::tuple_element<8, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
typedef typename tuple_element<N-1, Next>::type type;
^
/tmp/thrust-variadic/thrust/tuple.h:126:28: note: in instantiation of template class 'thrust::tuple_element<9, thrust::detail::cons<int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > > >' requested here
typename tuple_element<N, detail::cons<HT, TT> >::type
^
thrust_variadic_tuple_test.cpp:43:15: note: while substituting deduced template arguments into function template 'get' [with N = 9, HT = int, TT = thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> >]
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
thrust_variadic_tuple_test.cpp:43:10: error: no matching function for call to 'test'
return test(thrust::get<Indices>(t)...);
^~~~
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
thrust_variadic_tuple_test.cpp:26:5: note: candidate function not viable: requires 3 arguments, but 10 were provided
int test(int a, int b, int c)
^
In file included from thrust_variadic_tuple_test.cpp:2:
In file included from /tmp/thrust-variadic/thrust/tuple.h:34:
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:180:48: error: no member named 'tail' in 'thrust::detail::cons<int, thrust::null_type>'
return get_class<N-1>::template get<RET>(t.tail);
~ ^
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:180:37: note: in instantiation of function template specialization 'thrust::detail::get_class<1>::get<const int &, int, thrust::null_type>' requested here
return get_class<N-1>::template get<RET>(t.tail);
^
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:180:37: note: in instantiation of function template specialization 'thrust::detail::get_class<2>::get<const int &, int, thrust::detail::cons<int, thrust::null_type> >' requested here
return get_class<N-1>::template get<RET>(t.tail);
^
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:629:10: note: in instantiation of function template specialization 'thrust::detail::get_class<3>::get<const int &, int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
get<
^
thrust_variadic_tuple_test.cpp:43:23: note: in instantiation of function template specialization 'thrust::get<3, int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
In file included from thrust_variadic_tuple_test.cpp:2:
In file included from /tmp/thrust-variadic/thrust/tuple.h:34:
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:180:48: error: no member named 'tail' in 'thrust::detail::cons<int, thrust::null_type>'
return get_class<N-1>::template get<RET>(t.tail);
~ ^
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:180:37: note: in instantiation of function template specialization 'thrust::detail::get_class<2>::get<const int &, int, thrust::null_type>' requested here
return get_class<N-1>::template get<RET>(t.tail);
^
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:180:37: note: in instantiation of function template specialization 'thrust::detail::get_class<3>::get<const int &, int, thrust::detail::cons<int, thrust::null_type> >' requested here
return get_class<N-1>::template get<RET>(t.tail);
^
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:629:10: note: in instantiation of function template specialization 'thrust::detail::get_class<4>::get<const int &, int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
get<
^
thrust_variadic_tuple_test.cpp:43:23: note: in instantiation of function template specialization 'thrust::get<4, int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
In file included from thrust_variadic_tuple_test.cpp:2:
In file included from /tmp/thrust-variadic/thrust/tuple.h:34:
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:180:48: error: no member named 'tail' in 'thrust::detail::cons<int, thrust::null_type>'
return get_class<N-1>::template get<RET>(t.tail);
~ ^
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:180:37: note: in instantiation of function template specialization 'thrust::detail::get_class<3>::get<const int &, int, thrust::null_type>' requested here
return get_class<N-1>::template get<RET>(t.tail);
^
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:180:37: note: in instantiation of function template specialization 'thrust::detail::get_class<4>::get<const int &, int, thrust::detail::cons<int, thrust::null_type> >' requested here
return get_class<N-1>::template get<RET>(t.tail);
^
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:629:10: note: in instantiation of function template specialization 'thrust::detail::get_class<5>::get<const int &, int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
get<
^
thrust_variadic_tuple_test.cpp:43:23: note: in instantiation of function template specialization 'thrust::get<5, int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
In file included from thrust_variadic_tuple_test.cpp:2:
In file included from /tmp/thrust-variadic/thrust/tuple.h:34:
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:180:48: error: no member named 'tail' in 'thrust::detail::cons<int, thrust::null_type>'
return get_class<N-1>::template get<RET>(t.tail);
~ ^
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:180:37: note: in instantiation of function template specialization 'thrust::detail::get_class<4>::get<const int &, int, thrust::null_type>' requested here
return get_class<N-1>::template get<RET>(t.tail);
^
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:180:37: note: in instantiation of function template specialization 'thrust::detail::get_class<5>::get<const int &, int, thrust::detail::cons<int, thrust::null_type> >' requested here
return get_class<N-1>::template get<RET>(t.tail);
^
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:629:10: note: in instantiation of function template specialization 'thrust::detail::get_class<6>::get<const int &, int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
get<
^
thrust_variadic_tuple_test.cpp:43:23: note: in instantiation of function template specialization 'thrust::get<6, int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
In file included from thrust_variadic_tuple_test.cpp:2:
In file included from /tmp/thrust-variadic/thrust/tuple.h:34:
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:180:48: error: no member named 'tail' in 'thrust::detail::cons<int, thrust::null_type>'
return get_class<N-1>::template get<RET>(t.tail);
~ ^
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:180:37: note: in instantiation of function template specialization 'thrust::detail::get_class<5>::get<const int &, int, thrust::null_type>' requested here
return get_class<N-1>::template get<RET>(t.tail);
^
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:180:37: note: in instantiation of function template specialization 'thrust::detail::get_class<6>::get<const int &, int, thrust::detail::cons<int, thrust::null_type> >' requested here
return get_class<N-1>::template get<RET>(t.tail);
^
/tmp/thrust-variadic/thrust/detail/tuple/tuple.h:629:10: note: in instantiation of function template specialization 'thrust::detail::get_class<7>::get<const int &, int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
get<
^
thrust_variadic_tuple_test.cpp:43:23: note: in instantiation of function template specialization 'thrust::get<7, int, thrust::detail::cons<int, thrust::detail::cons<int, thrust::null_type> > >' requested here
return test(thrust::get<Indices>(t)...);
^
thrust_variadic_tuple_test.cpp:36:10: note: in instantiation of function template specialization 'apply_helper<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>' requested here
return apply_helper(build_indices<sizeof...(Args)>(), t);
^
thrust_variadic_tuple_test.cpp:50:16: note: in instantiation of function template specialization 'call_functor<int, int, int, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>' requested here
std::cout << call_functor(t) << std::endl;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
#include <type_traits>
#include <thrust/tuple.h>
#include <tuple>
#include <iostream>
//#define thrust std
template<typename T, T...>
struct integer_sequence
{ };
template<std::size_t... Indices>
struct indices : integer_sequence<std::size_t, Indices...>
{ };
template<std::size_t N, std::size_t... T>
struct build_indices : build_indices<(N - 1), (N - 1), T...>
{ };
template<std::size_t... T>
struct build_indices<0, T...> : indices<T...>
{ };
__host__ __device__
int test(int a, int b, int c)
{
return a+b+c;
}
template<typename... Args>
__host__ __device__
int call_test(thrust::tuple<Args...> t)
{
return apply_helper(build_indices<sizeof...(Args)>(), t);
}
template<typename... Args, std::size_t... Indices>
__host__ __device__
int apply_helper(indices<Indices...>, thrust::tuple<Args...> t)
{
return test(thrust::get<Indices>(t)...);
}
int main()
{
using Tuple = thrust::tuple<int, int, int>;
Tuple t(1,2,3);
std::cout << call_functor(t) << std::endl;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment