title: How to check whether a name is an alias or a reference in C++17?
body: <p>From <a href="https://en.cppreference.com/w/cpp/language/structured_binding" rel="nofollow noreferrer">cppref</a></p>
  
  <blockquote>
    <p>Like a reference, a structured binding is an alias to an existing
    object. Unlike a reference, the type of a structured binding does not
    have to be a reference type.</p>
  </blockquote>
  
  <p>For example:</p>
  
  <pre><code>int a[2] = { 1, 2 };
  auto [x, y] = a;
  </code></pre>
  
  <p><code>x</code> and <code>y</code> are aliases rather than references. My question:</p>
  
  <p><strong>How to implement a type check function like <code>is_alias_v&lt;decltype(x)&gt;</code>?</strong></p>