title: constexpr function returning string literal
body: <p>A function returning a copy of an integer literal</p>
  
  <pre><code>int number()
  { return 1; }
  </code></pre>
  
  <p>can be easily converted to a plain compile-time expression using the keyword <code>constexpr</code>.</p>
  
  <pre><code>constexpr int number()
  { return 1; }
  </code></pre>
  
  <p>However, I'm getting confused when it comes to string literals. The usual method is returning a pointer to <code>const char</code> that points to the string literal,</p>
  
  <pre><code>const char* hello()
  { return "hello world"; }
  </code></pre>
  
  <p>but I think that merely changing "const" to <code>constexpr</code> is not what I want (as a bonus, it also produces the compiler warning <em>deprecated conversion from string constant to 'char*'</em> using gcc 4.7.1)</p>
  
  <pre><code>constexpr char* hello()
  { return "hello world"; }
  </code></pre>
  
  <p>Is there a way to implement <code>hello()</code> in such a way that the call is substituted with a constant expression in the example below?</p>
  
  <pre><code>int main()
  {
      std::cout &lt;&lt; hello() &lt;&lt; "\n";
      return 0;
  }
  </code></pre>