http://llvm.org/bugs/show_bug.cgi?id=15311
Bug ID: 15311
Summary: problem with parameter-declaration-clause/pack
expansion of abstract declarator ambiguity resolution
Product: clang
Version: trunk
Hardware: PC
OS: Windows NT
Status: NEW
Severity: enhancement
Priority: P
Component: C++11
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected], [email protected]
Classification: Unclassified
Clang can not parse this code:
template <typename ...Args>
void foo(void (*...)(Args))
{}
with error message:
1.cpp:2:17: error: expected ')'
void foo(void (*...)(Args))
^
1.cpp:2:15: note: to match this '('
void foo(void (*...)(Args))
^
1.cpp:2:6: error: declaration type contains unexpanded parameter pack 'Args'
void foo(void (*...)(Args))
^ ~~~~
2 errors generated.
When it see ... it haven't seen any unexpanded template parameter packs, so it
doesn't parse ... as part of abstract declarator leaving it to
parameter-declaration-clause.
Funny thing is that november CTP of MSVC 2012 is the only compiler that can
parse this code correctly.
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs