.. Macros/Configuration//BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE |20

.. Copyright Daniel Walker 2007.
.. Distributed under the Boost
.. Software License, Version 1.0. (See accompanying
.. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
=================================

Synopsis
--------

.. parsed-literal::

    // #define BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE


Description
-----------

``BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE`` is a boolean configuration
macro signaling availability of the |BOOST_MPL_HAS_XXX_TEMPLATE_DEF| /
|BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF| introspection macros'
functionality on a particular compiler.


See also
--------

|Macros|, |Configuration|, |BOOST_MPL_HAS_XXX_TEMPLATE_DEF|, |BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF|

