title: No appropriate default constructor available?
body: <p>I've got a peculiar error writing some C++/CLI code. I'm trying to make a copy of a class which holds some data.</p>
  
  <p>The class is defined as:</p>
  
  <pre><code>public ref class RawDataPacket
  {
  protected:
      float* m_internalData;
  
  public:
      RawDataPacket(const float* newInternalData);
      RawDataPacket(const RawDataPacket^ rdp);
      RawDataPacket(RawDataPacket^ rdp);
      RawDataPacket();
  };
  </code></pre>
  
  <p>When I try and make use of the class as follows:</p>
  
  <pre><code>void SomeClass::SomeFunction( RawDataPacket^ rdp )
  {
      // Send a copy of the packet to anyone interested.
      RawDataPacket^ rdp1 = gcnew RawDataPacket( rdp );
      ForwardData( rdp1 );
  }
  </code></pre>
  
  <p>I get:</p>
  
  <pre><code>error C2512: 'RawDataPacket' : no appropriate default constructor available
  </code></pre>
  
  <p>I thought that <code>RawDataPacket();</code> had that covered? ..or am I missing something really obvious there?</p>
  
  <p><strong>[Edit]</strong> The body of <code>RawDataPacket()</code> looks like this:</p>
  
  <pre><code>RawDataPacket::RawDataPacket()
  {
      m_internalData = nullptr;
  }
  </code></pre>
  
  <p><strong>[Edit2]</strong> The full compiler output looks like this:</p>
  
  <pre><code>1&gt;------ Build started: Project: MySoftware, Configuration: Debug Win32 ------
  1&gt;Compiling...
  1&gt;RawDataPacket.cpp
  1&gt;Controller.cpp
  1&gt;.\Controller.cpp(452) : error C2512: 'MySoftware::RawDataPacket' : no appropriate default constructor available
  1&gt;Build log was saved at "file://c:\Projects\Experiments\MySoftware\Debug\BuildLog.htm"
  1&gt;MySoftware - 1 error(s), 0 warning(s)
  ========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========
  </code></pre>