[libcxx-commits] [PATCH] D103056: [libcxx][ranges] Add `ranges::transform_view`.
Zoe Carver via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Jun 24 17:09:07 PDT 2021
zoecarver added inline comments.
================
Comment at: libcxx/include/__ranges/concepts.h:108
+ template<bool _Const, class _Tp>
+ using __maybe_const = conditional_t<_Const, const _Tp, _Tp>;
} // namespace ranges
----------------
Quuxplusone wrote:
> zoecarver wrote:
> > ldionne wrote:
> > > Is this used anywhere else other than in `transform_view`? If not, let's put it in `transform_view.h` only.
> > Yes, it's used in many views.
> FWIW, I think the libc++ style here would be to name it either `__maybe_const_t` or `_MaybeConst`, and then stick it in `<type_traits>`.
>
> (The otherwise-badly-named `_Parent` and `_Base` typedefs repeated below are merely mirroring the Standard exposition-only wording; see `Parent` and `Base` in https://en.cppreference.com/w/cpp/ranges/transform_view/sentinel . So even though they're awfully ugly, I think `_Parent` and `_Base` are probably following the right course of action.)
If you'd rather me put it in type traits that fine with me. But I want to keep the name the same. All of these exposition only concepts and type traits we do a mechanical transformation of `concept-or-trait` -> `__concept_or_trait`. Makes it easy to keep track of things, verify correctness, and reduce duplication.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D103056/new/
https://reviews.llvm.org/D103056
More information about the libcxx-commits
mailing list