Hi Michael,

You need brackets around 'is_base_of' expression , because there is a colon in it. 
"request type is not a node" has to be changed to be a legal C++ identifier token as well (http://www.boost.org/doc/libs/1_55_0/libs/mpl/doc/refmanual/assert-msg.html).

BOOST_MPL_ASSERT_MSG(
    (std::is_base_of<xnode, Node>::value)
    , requested_type_is_not_a_node
    , (types<node_type>)
    );

Kris


On Wed, Jul 23, 2014 at 2:04 PM, Michael Powell <mwpowellhtx@gmail.com> wrote:
Hello,

I would like to add some diagnostic messages during compile time,
potentially enumerating one or more types as well.

static_assert is great for simple messages but falls a bit short due
to inability to list types and such.

I wonder if BOOST_MPL_ASSERT_MSG is the right answer, however, I am
getting the following errors:

BOOST_MPL_ASSERT_MSG(
    std::is_base_of<xnode, Node>::value
    , "requested type is not a node"
    , (types<node_type>)
    );

1>i:\source\kingdom software\cppxml\xml\domain\parts\xnode.h(111):
warning C4002: too many actual parameters for macro
'BOOST_MPL_ASSERT_MSG'

It's an error message, but not the one(s) I am expecting. Do I need to
enable something, preprocessor definition, something like that?

Best regards,

Michael Powell
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users