title: Avoid calling move constructor
body: <p>I have following example </p>
  
  <pre><code>#include &lt;cstdint&gt;
  
  class FooC
  {
  public:
     FooC(uint16_t iPort, uint16_t iPin)
     : PORT(iPort)
     , PIN(iPin)
     {
     };
  
     ~FooC() = default;
  
     FooC() = delete;
     FooC(const FooC&amp;) = delete;
     FooC(FooC&amp;&amp;) = delete;
  
  private:
     const uint16_t PORT;
     const uint16_t PIN;
  };
  
  int main()
  {
      FooC array[2] = {
         FooC(1,2),
         FooC(3,4)
      };
  }
  </code></pre>
  
  <p>and I don't want to call the default, move and copy constructor. Due to that I deleted the functions. Unfortunately this results in following error (compiled with C++11)</p>
  
  <blockquote>
    <p>: In function 'int main()':</p>
    
    <p>:28:5: error: use of deleted function 'FooC::FooC(FooC&amp;&amp;)'</p>
  
  <pre><code> };
  
   ^
  </code></pre>
    
    <p>:16:4: note: declared here</p>
  
  <pre><code>FooC(FooC&amp;&amp;) = delete;
  
  ^~~~
  </code></pre>
    
    <p>:28:5: error: use of deleted function 'FooC::FooC(FooC&amp;&amp;)'</p>
  
  <pre><code> };
  
   ^
  </code></pre>
    
    <p>:16:4: note: declared here</p>
  
  <pre><code>FooC(FooC&amp;&amp;) = delete;
  
  ^~~~
  </code></pre>
    
    <p>Compiler returned: 1</p>
  </blockquote>
  
  <p>Is it possible to force in this example the calling of constructor with the parameters and still delete the default, move and copy constructor?</p>