https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62101
Bug ID: 62101
Summary: deleted definitions of friend functions are rejected
Product: gcc
Version: 4.10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: ville.voutilainen at gmail dot com
Test:
struct X
{
friend void f(X, int) = delete;
friend void f(X, double) {}
};
struct Y;
void g(Y, int);
void g(Y, double);
struct Y
{
friend void g(Y, int) = delete;
friend void g(Y, double) {}
};
int main()
{
X x;
f(x, 5.0);
Y y;
g(y, 5.0);
}
deleted-friend.cpp:3:26: error: can’t initialize friend function ‘f’
friend void f(X, int) = delete;
^
deleted-friend.cpp:13:26: error: can’t initialize friend function ‘g’
friend void g(Y, int) = delete;
^
clang accepts the code. There doesn't seem to be any standard wording
forbidding in-class friend definitions that are deleted.