title: How can I return char array with boost::optional
body: <p>I try to return simple array with boost::optional </p>
  
  <pre><code>boost::optional&lt;const char *&gt; foo () {
     char ar[100] = {};
     return boost::make_optional(true, ar);
  }
  </code></pre>
  
  <p>and I got the following error:</p>
  
  <blockquote>
  <pre><code>could not convert ‘boost::make_optional(bool, const T&amp;) [with T = char [100]](ar)’ from ‘boost::optional&lt;char [100]&gt;’ to ‘boost::optional&lt;const char*&gt;’ return boost::make_optional(true, ar);
  </code></pre>
  </blockquote>
  
  <p>How can I handle such confusion?</p>