title: What does P::************ mean in Boost assert.hpp file?
body: <p>In <a href="http://www.boost.org/doc/libs/1_57_0/boost/mpl/assert.hpp">boost/mpl/assert.hpp</a>, I saw something like this:</p>
  
  <pre><code>template&lt;class Pred&gt;
  struct eval_assert {
      typedef typename extract_assert_pred&lt;Pred&gt;::type P;
      typedef typename P::type p_type;
      typedef typename ::boost::mpl::if_c&lt;p_type::value,
          AUX778076_ASSERT_ARG(assert&lt;false&gt;),
          failed ************ P::************
      &gt;::type type;
  };
  </code></pre>
  
  <p>If the first <code>************</code> can be treated as pointers of struct failed, the <code>P::************</code> really doesn't make any sense to me. Is this standard C++?</p>