<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Unrecognized indirect pack expansion when accessing value member"
   href="http://llvm.org/bugs/show_bug.cgi?id=21289">21289</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Unrecognized indirect pack expansion when accessing value member
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>3.4
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>C++11
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedclangbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>juchem@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>dgregor@apple.com, llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>The parameter packs in the code below are not recognized as unexpanded:
  constant<size_type, 0>::type<Args>::value...
  zero<Args>::value...

Tested in clang 3.4.1 from <a href="http://gcc.godbolt.org/">http://gcc.godbolt.org/</a> using -std=c++11:
<a href="http://goo.gl/R1soR4">http://goo.gl/R1soR4</a>
It works in gcc 4.7 and up with -std=c++0x/-std=c++11.

-----------

#include <iostream>
#include <tuple>
#include <type_traits>
#include <utility>

template <typename T>
struct fixed {
  template <typename> using type = T;
};

template <typename T>
struct fixed2 {
  template <typename>
  struct with {
    using type = T;
  };
};

template<typename T, T Value>
struct constant {
  template <typename>
  using type = std::integral_constant<T, Value>;
};

using size_type = std::size_t;

template <typename>
using zero = std::integral_constant<size_type, 0>;

template <typename... Args>
bool foo() {
  using tuple = std::tuple<fixed<size_type>::type<Args>..., size_type>;

  tuple t(constant<size_type, 0>::type<Args>::value..., 0);

  return (&t == (tuple*)1);
}

template <typename... Args>
bool bar() {
  using tuple = std::tuple<fixed<size_type>::type<Args>..., size_type>;

  tuple t(zero<Args>::value..., 0);

  return (&t == (tuple*)1);
}

template <typename... Args>
bool baz() {
  using tuple = std::tuple<typename fixed2<size_type>::template
with<Args>::type..., size_type>;

  tuple t(constant<size_type, 0>::type<Args>::value..., 0);

  return (&t == (tuple*)1);
}

int main() {
  std::cout << foo() << std::endl;
  std::cout << foo<int, bool, double>() << std::endl;
  std::cout << bar() << std::endl;
  std::cout << bar<int, bool, double>() << std::endl;
  std::cout << baz() << std::endl;
  std::cout << baz<int, bool, double>() << std::endl;
};</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>