id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 13418,Request: allow general typelist types in BOOST_AUTO_TEST_CASE_TEMPLATE(),Tony E Lewis ,Raffi Enficiaud,"In ticket:12092 I requested that `BOOST_AUTO_TEST_CASE_TEMPLATE()` be generalised to allow users to specify the typelist as a `std::tuple` of types, as well as a `boost::mpl::vector`. You added this feature - thanks very much. As discussed in ticket:12092#comment:7, since I made the original request, I've come to realise that TMP gurus avoid using `std::tuple` as a typelist because it has complex guts that needlessly eat up compiler-time for each instantiation. Instead, I think they typically just use an arbitrary empty template struct, eg: {{{ #!cpp template struct my_typelist_wrapper {}; using a_typelist = my_typelist_wrapper; }}} With this in mind, it might be nice to consider finessing the conversion to `boost::mpl::vector` so that it works from any arbitrary such typelist (including `std::tuple`). Here's an illustrative implementation of the idea (which I've slightly tweaked since ticket:12092#comment:7 so that if the metafunction is called with anything other than a single, valid typelist, it will return a dummy type with a descriptive name which will hopefully make the compiler errors more helpful): {{{ #!cpp struct arg_type_is_not_single_valid_typelist final { arg_type_is_not_single_valid_typelist() = delete; ~arg_type_is_not_single_valid_typelist() = delete; arg_type_is_not_single_valid_typelist(const arg_type_is_not_single_valid_typelist &) = delete; arg_type_is_not_single_valid_typelist & operator=(const arg_type_is_not_single_valid_typelist &) = delete; }; template struct mpl_vector_of_typelist_impl { using type = arg_type_is_not_single_valid_typelist; }; template