title: void* or char* for generic buffer representation?
body: <p>I'm designing a Buffer class whose purpose is to represent a chunk of memory.</p>
  
  <p>My underlying buffer is a <code>char*</code> (well, a <code>boost::shared_array&lt;char&gt;</code> actually, but it doesn't really matter).</p>
  
  <p>I'm stuck at deciding what prototype to choose for my constructor:</p>
  
  <p>Should I go with:</p>
  
  <pre><code>Buffer(const void* buf, size_t buflen);
  </code></pre>
  
  <p>Or with:</p>
  
  <pre><code>Buffer(const char* buf, size_t buflen);
  </code></pre>
  
  <p>Or something else ?</p>
  
  <p>What is usually done, and why ?</p>