C++ Qualification conversions - constness
<p>Can someone explain why the second conversion is allowed while the first one is not? They both potentially allow the modification of a const lvalue...</p>

<pre><code>double *wPtr;
const double ** wRef = &amp;wPtr;
const double * const * wRef = &amp;wPtr;
</code></pre>

<p>Thank you,
regu</p>

<p>Adding compile error from Comeau...</p>

<pre><code>int main( int argc, const char* argv[] )
{
    double *wPtr;
    const double ** wRef = &amp;wPtr;
    return 0;
}

Compiling Comeau C/C++ 4.3.10.1 (Oct  6 2008 11:28:09) for ONLINE_EVALUATION_BETA2
Copyright 1988-2008 Comeau Computing.  All rights reserved.
MODE:strict errors C++ C++0x_extensions

"ComeauTest.c", line 4: error: a value of type "double **" cannot be used to
      initialize an entity of type "const double **"
  const double ** wRef = &amp;wPtr;
                         ^

1 error detected in the compilation of "ComeauTest.c".
</code></pre>
