<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Mar 27, 2015 at 4:48 PM, Seth Cantrell <span dir="ltr"><<a href="mailto:seth.cantrell@gmail.com" target="_blank">seth.cantrell@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Is the is the following supposed to work in C++1z?<br>
<br>
    #include <tuple><br>
<br>
    template<typename Tuple, int... Is><br>
    auto foo(Tuple const &t) {<br>
      return std::get<Is>(t) * ...;<br>
    }<br></blockquote><div><br></div><div>No. The syntax for a fold-expression has surrounding parentheses.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
    int main() {<br>
      using T = std::tuple<int,int,int>;<br>
      foo<T,0,1,2>({2,3,4});<br>
    }<br>
<br>
I get compile errors with clang's current implementation. I'm wondering if I've just misunderstood the syntax or if the current implementation isn't complete yet:<br>
<br>
    main.cpp:5:10: error: expression contains unexpanded parameter pack 'Is'<br>
      return std::get<Is>(t) * ...;<br>
             ^        ~~<br>
    main.cpp:5:28: error: expected expression<br>
      return std::get<Is>(t) * ...;<br>
                               ^<br>
<br>
<br>
<br>
clang version 3.7.0 (<a href="http://llvm.org/git/clang.git" target="_blank">http://llvm.org/git/clang.git</a> 326442a32231880339419bfea101f2887cc8b43b) (<a href="http://llvm.org/git/llvm.git" target="_blank">http://llvm.org/git/llvm.git</a> 920bbddfe0e9e9af2cacb83073f2dd3b9dabead7)<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</blockquote></div><br></div></div>