title: warning: base class should be explictily initialized in the copy constructor
body: <p>I'm writing a matrix class for CUDA processing. </p>
  
  <p>I've written a vector class (henceforth known as <code>Elements</code>) and used that for the matrix base.</p>
  
  <p>Here is the template definition:</p>
  
  <pre><code>template &lt;typename T, std::size_t M, std::size_t N&gt;
  class Matrix : public Elements&lt; Elements&lt; T, N &gt;, M &gt; {
  
  }
  </code></pre>
  
  <p>It should be noted that nothing is dynamically allocated in the <code>Elements</code> class, nor in the <code>Matrix</code> class.</p>
  
  <p>I'm getting a <code>warning: base class ‘struct Elements&lt;Elements&lt;double, 2ul&gt;, 2ul&gt;’ should be explicitly initialized in the copy constructor</code> warning in the copy constructor. Here is the copy constructor:</p>
  
  <pre><code>    DEVICE HOST
      Matrix(const Matrix &amp; that) {
          for (std::size_t ind = 0; ind &lt; M; ind++) {
              for (std::size_t jnd = 0; jnd &lt; N; jnd++) {
                  (*this)[ind][jnd] = that[ind][jnd];
              }
          }
      }
  </code></pre>
  
  <p>What am I doing wrong?</p>