
<tt>type_var</tt> and <tt>concept</tt> names in the nested class and
typedef names to help prevent name collisions.

<pre>
#define BOOST_CLASS_REQUIRE(type_var, ns, concept) \
  typedef void (ns::concept &lt;type_var&gt;::* func##type_var##concept)(); \
  template &lt;func##type_var##concept _Tp1&gt; \
  struct concept_checking_##type_var##concept { }; \
  typedef concept_checking_##type_var##concept&lt; \
    BOOST_FPTR ns::concept&lt;type_var&gt;::constraints&gt; \
    concept_checking_typedef_##type_var