[LLVMbugs] [Bug 10595] New: Friend with templated function parameter ignored
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Fri Aug 5 15:23:51 PDT 2011
http://llvm.org/bugs/show_bug.cgi?id=10595
Summary: Friend with templated function parameter ignored
Product: clang
Version: unspecified
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: C++
AssignedTo: unassignedclangbugs at nondot.org
ReportedBy: klimek at google.com
CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com
In the example code:
template<typename T> class X {
friend int operator<<(int, const X<T>&) {
return 42;
}
};
#ifdef SECOND_OVERLOAD
struct Y {};
int operator<<(int, const Y&);
#endif
void f(const X<double>& x1) {
42 << x1;
X<double> x2;
42 << x2;
}
$ clang -c t.cc
t.cc:13:6: error: invalid operands to binary expression ('int' and 'const
X<double>')
42 << x1;
~~ ^ ~~
1 error generated.
Both cases are accepted by gcc, and the case with 2 overloads is accepted by
clang, too:
$ clang -DSECOND_OVERLOAD -c t.cc
$ g++ -c t.cc
$ g++ -DSECOND_OVERLOAD -c t.cc
--
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.
More information about the llvm-bugs
mailing list