id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 5637,use of mpl::print imposes default constructible requirement on argument,Robert Ramey,Aleksey Gurtovoy,"I'm using the following to debug some TMP code that looks like the following. {{{ #include struct X { X(int); }; boost::mpl::print< X >::type x; boost::mpl::print< X >::type y; }}} I get an error message that the type X is not default constructible. A little investigation yields the definition of mpl::print (simplified for exposition) {{{ template struct print : identity { enum { n = sizeof(T) + -1 }; }; }}} So invoking the print creates an instance with the default constructor which provokes the error in this case. For my purposes, I made the following change which seems to address the problem: {{{ template struct print : identity { enum { n = sizeof(T) + -1 }; }; }}} I'm using MSVC 9.0. A couple of misceleanous issues besides this: On my current version of GCC - 4.3.4 I get no warning at all. If the same type is printed more than once, I only get the warning on the first instance. Robert Ramey ",Tasks,new,To Be Determined,mpl,Boost 1.46.1,Problem,,mpl print,