 <p>The error message you're seeing has nothing to do with the <code>constexpr</code> keyword per se.</p> <p>A string literal like "foo", as in:</p> <pre><code>somefunction("foo"); </code></pre> <p>The type of this string literal is <code>const char *</code>. The following statement:</p> <pre><code>char *const str = "foo"; </code></pre> <p>This tries to assign a <code>const char *</code> value to a <code>char *</code> value. The resulting <code>char *</code> value is non-mutable, constant, but by that time the error already occured: an attempt to convert a <code>const char *</code> to a <code>char *</code>.</p> <p>The <code>constexpr</code> keyword in your example is just a distraction, and has no bearing on the error.</p>