http://llvm.org/bugs/show_bug.cgi?id=9919
Summary: error: binding of reference to type 'A' to a value of
type 'A' drops qualifiers
Product: clang
Version: trunk
Platform: PC
OS/Version: All
Status: NEW
Severity: normal
Priority: P
Component: C++0x
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected], [email protected]
I believe this is well-formed code.
struct A {};
template <class _R, class ..._Param, class ..._Args>
inline
_R
__invoke(_R (*__f)(_Param...), _Args&& ...__args)
{
return __f(static_cast<_Args&&>(__args)...);
}
template <class _F, class _BoundArgs>
inline
A
__apply_functor(_F& __f, _BoundArgs __bound_args)
{
return ::__invoke(__f, __bound_args);
}
A f4(A&& p)
{
return static_cast<A&&>(p);
}
int main()
{
::__apply_functor(f4, A());
}
test.cpp:9:16: error: binding of reference to type 'A' to a value of type 'A'
drops qualifiers
return __f(static_cast<_Args&&>(__args)...);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
test.cpp:17:12: note: in instantiation of function template specialization
'__invoke<A, A &&, A &>' requested here
return ::__invoke(__f, __bound_args);
^
test.cpp:28:5: note: in instantiation of function template specialization
'__apply_functor<A (A &&), A>' requested here
::__apply_functor(f4, A());
^
1 error generated.
Apple clang version 3.0 (trunk 131335) (based on LLVM 3.0svn)
Target: x86_64-apple-darwin10.7.0
Thread model: posix
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- 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