-
Notifications
You must be signed in to change notification settings - Fork 778
[expr.new], [class.free] Remove "free store" from the index #7041
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
frederick-vs-ja
wants to merge
3
commits into
cplusplus:main
from
frederick-vs-ja:goodbye-free-store
Closed
Changes from 1 commit
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This doesn't preserve the meaning of the original wording, which describes features that C++ has beyond C. C also has allocation and deallocation functions (
malloc
andfree
).If we said replaceable or class-specific allocation functions, that would be a beyond-C feature.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or just keep the word operators, since that's what it originally said, and C doesn't have those. The operators construct and destroy objects instead of just allocating. C doesn't have that (just
calloc
which doesn't work for non-trivial types).Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the C++ standard wording, allocation and deallocation functions are
operator new
/operator new[]
andoperator delete
/operator delete[]
but not other functions. But such meaning seems confusing in more general contexts.I'm now using "allocation and deallocation operator functions", as these functions are also operator functions ([over.oper.general]/1) and operator functions are clearly beyond C.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, however, as you said here, the
new
anddelete
operators are more than "free store management" which seemingly just refers to allocating and deallocating. The original meaning is unclear to me.An early draft seemingly indicated that free storage management operators are allocation and deallocation functions (in Clause 12).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jwakely, @jensmaurer Thoughts on "allocation operator functions"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We never call those "allocation operator functions". They're just "allocation functions". Also, the original wording talks about "free store management operators", which is something like "new T" (allocates and constructs), whereas allocation functions just allocate raw bytes --- and C has those, too, sort-of.
I think "free store management operators" is good enough for this intro paragraph.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, Jens, agreed!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But if we keep using "free store management operators", #5558 and #7040 won't be addressed, as it will be still unclear what free store is.