
I read the following from the documents: =================================== The BOOST_TYPEOF_REGISTER_TEMPLATE_X macro accepts a template name and a preprocessor sequence describing template parameters, where each parameter should be described as one of the following: § class § typename § [unsigned] char § [unsigned] short § [unsigned] int § [unsigned] long § unsigned § bool For example: BOOST_TYPEOF_REGISTER_TEMPLATE_X(foo, (class)(unsigned int)(bool)); =================================== I wonder if other non-type template parameter is supported. For example: template <void (*)()> struct template_with_func_ptr_param {}; BOOST_TYPEOF_REGISTER_TEMPLATE_X( template_with_func_ptr_param, (void (*)()) ); // is this legal or possible? template <void (MyClass::*)(int)> struct template_with_mem_func_ptr_param {}; BOOST_TYPEOF_REGISTER_TEMPLATE_X( template_with_mem_func_ptr_param, (void (MyClass::*)(int)) ); // is this legal or possible? template <typename T, T t> struct template_with_dependent_non_type_param {}; BOOST_TYPEOF_REGISTER_TEMPLATE_X( template_with_dependent_non_type_param, (class)(/* what to put here? */)) ); // is this legal or possible? I didn't look into the implementation of the library. If I am missing something, please don't hesitate to point it out. Best regards, Allen