实验性库头文件 <experimental/ranges/utility>
来自cppreference.com
此头文件是范围库的一部分。
工具组件
在命名空间
std::experimental::ranges 定义 | |
| 交换两个对象的值 (定制点对象) | |
| 以新值替换实参并返回其先前的值 (函数模板) | |
标签概念
在命名空间
std::experimental::ranges 定义 | |
| 指定类型为标签说明符 (概念) | |
| 指定类型表示一个标签说明符及其元素类型 (概念) | |
带标签对偶
在命名空间
std::experimental::ranges 定义 | |
| 为元组式类型增加具名访问器 (类模板) | |
| 有标签 std::pair 的别名模版 (别名模板) | |
用于创建 tagged_pair 的便利函数 (函数模板) | |
概要
namespace std { namespace experimental { namespace ranges { inline namespace v1 {
namespace {
constexpr /* 未指明 */ swap = /* 未指明 */;
}
template<MoveConstructible T, class U = T>
requires Assignable<T&, U>
constexpr T exchange(T& obj, U&& new_val) noexcept(/* 见定义 */);
template <class T>
concept bool TagSpecifier = /* 见定义 */;
template <class F>
concept bool TaggedType = /* 见定义 */;
template <class Base, TagSpecifier... Tags>
requires sizeof...(Tags) <= std::tuple_size<Base>::value
struct tagged;
template <TaggedType T1, TaggedType T2>
using tagged_pair = /* 见定义 */;
template <TagSpecifier Tag1, TagSpecifier Tag2, class T1, class T2>
constexpr /* 见定义 */ make_tagged_pair(T1&& x, T2&& y);
}}}}
namespace std {
template <class Base, class... Tags>
struct tuple_size<experimental::ranges::tagged<Base, Tags...>>;
template <size_t N, class Base, class... Tags>
struct tuple_element<N, experimental::ranges::tagged<Base, Tags...>>;
}