
I'm trying to use the MPL for the first time, and I have two questions. First, I want to use BOOST_MPL_ASSERT to say that at least one of two conditions is true. For the time being, one of the conditions is always false, so this is what I've tried: BOOST_MPL_ASSERT(( false || boost::is_same<CallerConstraints, CodeConstraints::Ignore_Constraints> )); It won't compile, so I tried this: BOOST_MPL_ASSERT(( mpl::or_(false, boost::is_same<CallerConstraints, CodeConstraints::Ignore_Constraints>) )); It won't compile either. I'm guessing that I have to use mpl::false_ or something in place of false, but that doesn't work either. Can somebody please tell me the proper way to say what I want to say? My second question is about the existence of an MPL algorithm akin to the STL algorithm includes. Given two MPL vectors V1 and V2, I want to know if all the types in V1 are also in V2. I know about mpl::contains, but I can't find mpl::includes. Is there one, or do I need to write it myself? I have the MPL book, so references to that are fine, in addition to anything online. Thanks, Scott