title: CPP auto on tuple error: cannot be referenced -- it is a deleted function
body: <p>I am working with tuples and auto, and I am facing the following errors. What am I doing wrong?</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;string&gt;
  #include &lt;tuple&gt;
  
  struct Custom
  {
      enum {INT, STRING} tags;
      union dummy {
          std::string s;
          uint64_t i;
      };
  };
  
  int main()
  {
      std::tuple&lt;std::string, uint64_t&gt; xs = {"hello World", 45};
      auto [str, i] = xs;
      std::cout&lt;&lt;str&lt;&lt;" "&lt;&lt;i&lt;&lt;"\n"; // works fine
  
      Custom c1 = {Custom::INT, 45}; // error: too many initializers for 'Custom'
  
      std::tuple&lt;std::string, Custom&gt; xs1 = {"hello World", { Custom::Tag::INT ,45}}; // error: too many initializers for 'Custom'
      auto [p1, p2] = xs1; // error: cannot be referenced -- it is a deleted function
  }
  </code></pre>