- ranges[meta header]
- concept[meta id-type]
- std::ranges[meta namespace]
- cpp20[meta cpp]
namespace std::ranges {
template<class From, class To>
concept uses-nonqualification-pointer-conversion = // 説明専用コンセプト
is_pointer_v<From> && is_pointer_v<To> &&
!convertible_to<remove_pointer_t<From>(*)[], remove_pointer_t<To>(*)[]>;
}
- convertible_to[link /reference/concepts/convertible_to.md]
- is_pointer_v[link /reference/type_traits/is_pointer.md]
- remove_pointer_t[link /reference/type_traits/remove_pointer.md]
- uses-nonqualification-pointer-conversion[italic]
uses-nonqualification-pointer-conversion
は、直接変換できない型同士のポインタの変換が必要かどうかを表す。ranges::subrange
の定義において、ranges::subrange<const T* const*>
をT*[]
から構築するなどの時に必要になるポインタの変換を許容するために使用される。
- C++20
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??