id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 3442,tracking level etc. for templates,anonymous,Robert Ramey,"changing the tracking level/class implementation for tempaltes is very tedious to write and reveals implementation details to the user, so I'm suggesting the following macro: template class mytype{}; BOOST_CLASS_TRACKING_TEMPLATE(mytype,2,(class,int),track_never); the implementation is fairly simple: #define TYPE_TO_PAR(R,DATA,I,ELEM) (ELEM _A##I) #define PAR_SEQ(NR,PARS) BOOST_PP_SEQ_FOR_EACH_I(TYPE_TO_PAR,0,BOOST_PP_TUPLE_TO_SEQ(NR,PARS)) #define PARS(NR,PARS) BOOST_PP_SEQ_ENUM(PAR_SEQ(NR,PARS)) #define ARGS(NR) BOOST_PP_ENUM_PARAMS(NR,_A) #define BOOST_CLASS_TRACKING_TEMPLATE(T,NR,P,TRACKING) \ template struct tracking_level > { typedef mpl::integral_c_tag tag; typedef mpl::int_ type; BOOST_STATIC_CONSTANT( int, value = tracking_level::type::value ); }; ",Feature Requests,closed,Boost 1.41.0,serialization,Boost 1.40.0,Cosmetic,wontfix,,