title: Setting up an array of char using smart pointer and std::vector
body: <p>I want to have an array of <code>char[maxname]</code>. My initial approach was the following</p>
  <pre><code> class char_list
   {
    char_list(int noc){names_.reserve(noc)}
    std::vector&lt;std::unique_ptr&lt;char&gt;&gt; names_;
    void setname( const char* name){ names_.push_back(name)};
  
   } 
  </code></pre>
  <p>When I try to invoke the routine by e.g.</p>
  <pre><code>char aux[100];
  aux = 'asadsdsd'  
  const char* aux1 = aux;
  setname(aux1);
  </code></pre>
  <p>I get the error</p>
  <pre><code>candidate function not viable: no known conversion from 'const char *' to
    'const std::__1::__vector_base&lt;std::__1::unique_ptr&lt;char, std::__1::default_delete&lt;char&gt; &gt;, std::__1::allocator&lt;std::__1::unique_ptr&lt;char, std::__1::default_delete&lt;char&gt; &gt; &gt; &gt;::value_type' (aka
    'const std::__1::unique_ptr&lt;char, std::__1::default_delete&lt;char&gt; &gt;') for 1st argument
  _LIBCPP_INLINE_VISIBILITY void push_back(const_reference __x);
  </code></pre>
  <p>I am using <code>clang</code> with C++17 standard.</p>