id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 10027,Allow template parameters with types rather than hardcode typename in BOOST_FUSION_DEFINE_TPL_STRUCT_INLINE (and friends),Jonas Lippuner ,Joel de Guzman,"Right now, the macro `BOOST_FUSION_DEFINE_TPL_STRUCT_INLINE` creates {{{ template struct MyStruct { ... }; }}} from {{{ BOOST_FUSION_DEFINE_TPL_STRUCT_INLINE( (A)(B), MyStruct, (A, foo) (B, bar) ) }}} But I want to put the class `template class Vector` into a Boost Fusion Struct. So the struct should allow template parameters that are not typenames. I would like to be able to write the following: {{{ BOOST_FUSION_DEFINE_TPL_STRUCT_INLINE( (int DIM)(typename B), MyStruct, (Vector, foo) (B, bar) ) // the above becomes // template // struct MyStruct { ... }; MyStruct<3, double> struct; }}} This does not currently work. The following is a working (but cumbersome) workaround (using C++11): {{{ BOOST_FUSION_DEFINE_TPL_STRUCT_INLINE( (DIM)(B), MyStructImpl, (Vector, foo) (B, bar) ) template using MyStruct = MyStructImpl>; MyStruct<3, double> struct; }}} Maybe for backwards compatibility my proposed version of `BOOST_FUSION_DEFINE_TPL_STRUCT_INLINE` where template parameters are declared as `(int DIM)(typename B)` should be named `BOOST_FUSION_DEFINE_FLEXIBLE_TPL_STRUCT_INLINE`.",Feature Requests,new,To Be Determined,fusion,Boost 1.55.0,Problem,,,