title: What "using value_type = T;" does in a c++ template?
body: <p>In the following code:</p>
  <pre><code>template&lt;typename T, int N&gt;
  struct Buffer {
      using value_type = T;
      constexpr int size() { return N; }
      T[N];
  };
  </code></pre>
  <p>can you explain to me what this line does and what happens if we remove it?</p>
  <pre><code>using value_type = T;
  </code></pre>