[mpl] bug: has_xxx, default bool parameter

The traits generated with BOOST_MPL_HAS_XXX_TRAIT_DEF() doesn't work with lambda on VC7.1+. I think the problem is the default bool parameter: template< typename T, bool fallback_ = default_ > struct trait \ ^^^^^^^^^^^^^^^^^^^^^^^^^ This template will never match: template<template<typename ..> class F, class U1 .. UN> struct lambda<F<U1 .. UN> >; So lambda breaks. I guess the solution is to stop using a default bool parameter and use a class type instead. -- Daniel Wallin

Daniel Wallin writes:
The traits generated with BOOST_MPL_HAS_XXX_TRAIT_DEF() doesn't work with lambda on VC7.1+. I think the problem is the default bool parameter:
template< typename T, bool fallback_ = default_ > struct trait \ ^^^^^^^^^^^^^^^^^^^^^^^^^
This template will never match:
template<template<typename ..> class F, class U1 .. UN> struct lambda<F<U1 .. UN> >;
So lambda breaks. I guess the solution is to stop using a default bool parameter and use a class type instead.
Daniel, Thanks for the report. Fixed in the CVS. -- Aleksey Gurtovoy MetaCommunications Engineering
participants (2)
-
Aleksey Gurtovoy
-
Daniel Wallin