CWG Issue 281 (original) (raw)

This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 117a. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2025-04-13


281.inline specifier in friend declarations

Section: 9.2.3 [dcl.fct.spec]Status: CD1Submitter: John SpicerDate: 24 Apr 2001

[Moved to DR at October 2002 meeting.]

There is currently no restriction on the use of theinline specifier in friend declarations. That would mean that the following usage is permitted:

struct A {
    void f();
};

struct B {
    friend inline void A::f();
};

void A::f(){}

I believe this should be disallowed because a frienddeclaration in one class should not be able to change attributes of a member function of another class.

More generally, I think that the inline attribute should only be permitted in friend declarations that are definitions.

Notes from the 04/01 meeting:

The consensus agreed with the suggested resolution. This outcome would be similar to the resolution ofissue 136.

Proposed resolution (10/01):

Add to the end of 9.2.3 [dcl.fct.spec] paragraph 3:

If the inline specifier is used in a friend declaration, that declaration shall be a definition or the function shall have previously been declared inline.