## std::latest<> Should be Named std::snapshot_source Document number: P1760R0 Date: 2019-06-17 Audience: LEWG Reply-to: Tony Van Eerd. snapshot at forecode.com --- > I've been through the papers, found some stuff with bad names > It felt bad to be causing dev pain > In the standard you need stuff with good names > Cause there ain't no one for to help you explain > La la, la la-la la > > After two days in the standard tome > My brain began to turn dead > After three days with the standard combed > I was looking at a lot of dread > And the story it told of those names in code > Made me sad to think of our devs > > You see I've been through the papers, found some stuff with bad names > It felt bad to be cause of dev pain > In the standard you need stuff with good names > Cause there ain't no one for to help you explain > La la, la la-la la > .... > (ie _A Horse with No Name_ by America) --- P0561R4 proposes a class for deferred reclamation so that multiple threads can easily access the “latest snapshot” of a state. Currently the class where all snapshots are managed is called `latest` (along with a `raw_latest<>` class template in header ``). `std::latest<>` was originally named `std::cell<>`, which was a very vague and thus bad name. So `lastest` is a better name. But still not a _good_ name. There are issues: - "latest" is a very general term, can be applied to many things, many meanings - (for example) `std::chrono::latest` is an enum value, completely unrelated to `std::latest<>` - `std::latest<>` doesn't hint at its relationship to `std::snapshot_ptr` nor the header `` So rename it `std::snapshot_source<>` (and `raw_snapshot_source<>`) If you feel these are too long, they are not: - there will not be many sources, you don't type it often - the whole feature is not meant to be frequently used by the average programmer - a long name signals "this thing might be a bit complicated", which it is