title: SFINAE with variadic template classes?
body: <p>I can't seem to find a good solution for using SFINAE with variadic template classes.</p>
  
  <p>Let's say I have a variadic template object which doesn't like references:</p>
  
  <pre><code>template&lt;typename... Args&gt;
  class NoRef
  {
      //if any of Args... is a reference, this class will break
      //for example:
      std::tuple&lt;std::unique_ptr&lt;Args&gt;...&gt; uptrs;
  };
  </code></pre>
  
  <p>And a class which conveniently checks if an argument pack contains references:</p>
  
  <pre><code>template&lt;typename T, typename... Other&gt;
  struct RefCheck
  {
      static const bool value = std::is_reference&lt;T&gt;::value || RefCheck&lt;Other...&gt;::value;
  };
  template&lt;typename T&gt;
  struct RefCheck&lt;T&gt;
  {
      static const bool value = std::is_reference&lt;T&gt;::value;
  };
  </code></pre>
  
  <p>How do I use this to specialize NoRef for the case where references are present in the arg pack?</p>