Should flat_multiset be done in the same file, or should we granularize this into <__flat_set/flat_set.h> and <__flat_set/flat_multiset.h> before taking the next step? I tentatively think "two files," but only because that would make it easier to ensure things like "the identifier flat_set doesn't accidentally appear anywhere in flat_multiset.h nor vice versa." We don't expect any future standard header ever to include either of the granular headers alone.
If we introduce __flat_set/, should sorted_unique.h and sorted_equivalent.h move into that directory? I tentatively think "yes," but I wouldn't like to bet on these types' never being reused by another STL facility. Compare __utility/in_place.h (used only in <any>, <expected>, <optional>, <ranges>, <variant>) but __variant/monostate.h (used only in <variant>).
After this:
flat_multiset
be done in the same file, or should we granularize this into<__flat_set/flat_set.h>
and<__flat_set/flat_multiset.h>
before taking the next step? I tentatively think "two files," but only because that would make it easier to ensure things like "the identifierflat_set
doesn't accidentally appear anywhere inflat_multiset.h
nor vice versa." We don't expect any future standard header ever to include either of the granular headers alone.__flat_set/
, shouldsorted_unique.h
andsorted_equivalent.h
move into that directory? I tentatively think "yes," but I wouldn't like to bet on these types' never being reused by another STL facility. Compare__utility/in_place.h
(used only in<any>
,<expected>
,<optional>
,<ranges>
,<variant>
) but__variant/monostate.h
(used only in<variant>
).