Movatterモバイル変換


[0]ホーム

URL:



This page is a snapshot from the LWG issues list, see theLibrary Active Issues List for more information and the meaning ofTC1 status.

147. Library Intro refers to global functions that aren't global

Section: 16.4.6.4[global.functions]Status:TC1Submitter: Lois GoldthwaiteOpened: 1999-06-04Last modified: 2016-01-28

Priority:Not Prioritized

View all otherissues in [global.functions].

View all issues withTC1 status.

Discussion:

The library had many global functions until 17.4.1.1 [lib.contents]paragraph 2 was added:

All library entities except macros, operator new and operatordelete are defined within the namespace std or namespaces nestedwithin namespace std.

It appears "global function" was never updated in the following:

17.4.4.3 - Global functions [lib.global.functions]

-1- It is unspecified whether any global functions in the C++ StandardLibrary are defined as inline (dcl.fct.spec).

-2- A call to a global function signature described in Clauseslib.language.support through lib.input.output behaves the same as ifthe implementation declares no additional global functionsignatures.*

[Footnote: A valid C++ program always calls the expected library global function. An implementation may also define additional global functions that would otherwise not be called by a valid C++ program. --- end footnote]

-3- A global function cannot be declared by the implementation astaking additional default arguments. 

17.4.4.4 - Member functions [lib.member.functions]

-2- An implementation can declare additional non-virtual memberfunction signatures within a class:

-- by adding arguments with default values to a member functionsignature; The same latitude does not extend to the implementation ofvirtual or global functions, however.

Proposed resolution:

Change "global" to "global or non-member" in:

17.4.4.3 [lib.global.functions] section title,
17.4.4.3 [lib.global.functions] para 1,
17.4.4.3 [lib.global.functions] para 2 in 2 places plus 2 places in the footnote,
17.4.4.3 [lib.global.functions] para 3,
17.4.4.4 [lib.member.functions] para 2

Rationale:

Because operator new and delete are global, the proposed resolutionwas changed from "non-member" to "global or non-member.


[8]ページ先頭

©2009-2026 Movatter.jp