YSTest: ystdex::dep_ops 命名空间参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

类 | 类型定义
ystdex::dep_ops 命名空间参考

依赖名称查找操作：作为 ADL 的边界。 更多...

## 类

struct | decrementable
struct | dereferenceable
struct | incrementable
struct | indexable

## 类型定义

using | no_constfn = false_
using | use_constfn = true_
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | less_than_comparable = _t< details::ops_seq< _type, _type2, _tOpt, cond_t< is_same< _type, _type2 >, index_sequence< 2, 4, 1 >, index_sequence< 0, 1, 2, 3, 4, 5 > >> >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | equality_comparable = _t< details::ops_seq< _type, _type2, _tOpt, cond_t< is_same< _type, _type2 >, index_sequence< 7 >, index_sequence< 6, 7, 8 > >> >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | equivalent = _t< details::ops_seq< _type, _type2, _tOpt, cond_t< is_same< _type, _type2 >, index_sequence< 10 >, index_sequence< 9 > >> >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | partially_ordered = _t< details::ops_seq< _type, _type2, _tOpt, cond_t< is_same< _type, _type2 >, index_sequence< 2, 11, 14 >, index_sequence< 11, 12, 2, 3, 13, 14 > >> >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | addable = _t< details::ops_seq< _type, _type2, _tOpt, cond_t< is_same< _type, _type2 >, details::ops_bin_id_seq< 0, 0, 1 >, details::ops_bin_id_seq< 0, 0, 1, 2, 3 > >> >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | subtractable = _t< details::ops_seq< _type, _type2, _tOpt, details::ops_bin_id_seq< 1, 0, 1 > >>
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | subtractable_left = _t< details::ops_seq< _type, _type2, _tOpt, details::ops_bin_id_seq< 1, 4, 5 > >>
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | multipliable = _t< details::ops_seq< _type, _type2, _tOpt, cond_t< is_same< _type, _type2 >, details::ops_bin_id_seq< 2, 0, 1 >, details::ops_bin_id_seq< 2, 0, 1, 2, 3 > >> >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | dividable = _t< details::ops_seq< _type, _type2, _tOpt, details::ops_bin_id_seq< 3, 0, 1 > >>
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | dividable_left = _t< details::ops_seq< _type, _type2, _tOpt, details::ops_bin_id_seq< 3, 4, 5 > >>
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | modable = _t< details::ops_seq< _type, _type2, _tOpt, details::ops_bin_id_seq< 4, 0, 1 > >>
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | modable_left = _t< details::ops_seq< _type, _type2, _tOpt, details::ops_bin_id_seq< 4, 4, 5 > >>
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | left_shiftable = _t< details::ops_seq< _type, _type2, _tOpt, details::ops_bin_id_seq< 5, 0, 1 > >>
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | right_shiftable = _t< details::ops_seq< _type, _type2, _tOpt, details::ops_bin_id_seq< 6, 0, 1 > >>
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | xorable = _t< details::ops_seq< _type, _type2, _tOpt, cond_t< is_same< _type, _type2 >, details::ops_bin_id_seq< 7, 0, 1 >, details::ops_bin_id_seq< 7, 0, 1, 2, 3 > >> >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | andable = _t< details::ops_seq< _type, _type2, _tOpt, cond_t< is_same< _type, _type2 >, details::ops_bin_id_seq< 8, 0, 1 >, details::ops_bin_id_seq< 8, 0, 1, 2, 3 > >> >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | orable = _t< details::ops_seq< _type, _type2, _tOpt, cond_t< is_same< _type, _type2 >, details::ops_bin_id_seq< 9, 0, 1 >, details::ops_bin_id_seq< 9, 0, 1, 2, 3 > >> >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | totally_ordered = details::flat_ops< _type, _type2, _tOpt, less_than_comparable, equality_comparable >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | additive = details::flat_ops< _type, _type2, _tOpt, addable, subtractable >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | multiplicative = details::flat_ops< _type, _type2, _tOpt, multipliable, dividable >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | integer_multiplicative = details::flat_ops< _type, _type2, _tOpt, multiplicative, modable >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | arithmetic = details::flat_ops< _type, _type2, _tOpt, additive, multiplicative >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | integer_arithmetic = details::flat_ops< _type, _type2, _tOpt, additive, integer_multiplicative >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | bitwise = details::flat_ops< _type, _type2, _tOpt, xorable, andable, orable >
template<class _type , class _tOpt = use_constfn>
using | unit_steppable = details::ebases< incrementable< _type >, decrementable< _type > >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | shiftable = details::flat_ops< _type, _type2, _tOpt, left_shiftable, right_shiftable >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | ring_operators = details::flat_ops< _type, _type2, _tOpt, additive, subtractable_left, multipliable >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | ordered_ring_operators = details::flat_ops< _type, _type2, _tOpt, ring_operators, totally_ordered >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | field_operators = details::flat_ops< _type, _type2, _tOpt, ring_operators, dividable, dividable_left >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | ordered_field_operators = details::flat_ops< _type, _type2, _tOpt, field_operators, totally_ordered >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | euclidean_ring_operators = details::flat_ops< _type, _type2, _tOpt, ring_operators, dividable, dividable_left, modable, modable_left >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | ordered_euclidean_ring_operators = details::flat_ops< _type, _type2, _tOpt, totally_ordered, euclidean_ring_operators >
template<class _type , typename _type2 , class _tOpt = use_constfn>
using | input_iteratable = details::ebases< equality_comparable< _type, _type, _tOpt >, incrementable< _type >, dereferenceable< _type, _type2, _tOpt > >
template<class _type , typename _type2 , class _tOpt = use_constfn>
using | output_iteratable = details::ebases< incrementable< _type > >
template<class _type , typename _type2 , class _tOpt = use_constfn>
using | forward_iteratable = details::ebases< input_iteratable< _type, _type2, _tOpt > >
template<class _type , typename _type2 , class _tOpt = use_constfn>
using | bidirectional_iteratable = details::ebases< forward_iteratable< _type, _type2, _tOpt >, decrementable< _type > >
template<class _type , typename _type2 , typename _type3 , class _tOpt = use_constfn>
using | random_access_iteratable = details::ebases< bidirectional_iteratable< _type, _type3, _tOpt >, less_than_comparable< _type, _type, _tOpt >, additive< _type, _type2, _tOpt >, indexable< _type, _type2, _type, _tOpt > >
template<class _type , typename _type2 = _type, class _tOpt = use_constfn>
using | operators = details::flat_ops< _type, _type2, _tOpt, totally_ordered, integer_arithmetic, bitwise >

## 详细描述

依赖名称查找操作：作为 ADL 的边界。

注解
  操作模板不指定为类模板或别名模板。

自从
  build 682

## 类型定义说明

## ◆ addable

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::addable = typedef _t< details::ops_seq<_type, _type2, _tOpt, cond_t<is_same<_type, _type2>, details::ops_bin_id_seq< 0, 0 , 1>, details::ops_bin_id_seq< 0, 0 , 1 , 2 , 3> >> >

在文件 operators.hpp 第 293 行定义.

## ◆ additive

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::additive = typedef details::flat_ops<_type, _type2, _tOpt, addable, subtractable >

在文件 operators.hpp 第 392 行定义.

## ◆ andable

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::andable = typedef _t< details::ops_seq<_type, _type2, _tOpt, cond_t<is_same<_type, _type2>, details::ops_bin_id_seq< 8, 0 , 1>, details::ops_bin_id_seq< 8, 0 , 1 , 2 , 3> >> >

在文件 operators.hpp 第 317 行定义.

## ◆ arithmetic

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::arithmetic = typedef details::flat_ops<_type, _type2, _tOpt, additive, multiplicative >

在文件 operators.hpp 第 401 行定义.

## ◆ bidirectional_iteratable

template<class _type , typename _type2 , class _tOpt = use_constfn>

using ystdex::dep_ops::bidirectional_iteratable = typedef details::ebases< forward_iteratable<_type, _type2, _tOpt>, decrementable<_type> >

在文件 operators.hpp 第 457 行定义.

## ◆ bitwise

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::bitwise = typedef details::flat_ops<_type, _type2, _tOpt, xorable, andable, orable >

在文件 operators.hpp 第 408 行定义.

## ◆ dividable

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::dividable = typedef _t<details::ops_seq<_type, _type2, _tOpt, details::ops_bin_id_seq< 3, 0 , 1> >>

在文件 operators.hpp 第 302 行定义.

## ◆ dividable_left

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::dividable_left = typedef _t<details::ops_seq<_type, _type2, _tOpt, details::ops_bin_id_seq< 3, 4 , 5> >>

在文件 operators.hpp 第 302 行定义.

## ◆ equality_comparable

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::equality_comparable = typedef _t<details::ops_seq<_type, _type2, _tOpt, cond_t<is_same<_type, _type2>, index_sequence< 7 >, index_sequence< 6, 7, 8 > >> >

在文件 operators.hpp 第 265 行定义.

## ◆ equivalent

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::equivalent = typedef _t<details::ops_seq<_type, _type2, _tOpt, cond_t<is_same<_type, _type2>, index_sequence< 10 >, index_sequence< 9 > >> >

在文件 operators.hpp 第 268 行定义.

## ◆ euclidean_ring_operators

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::euclidean_ring_operators = typedef details::flat_ops<_type, _type2, _tOpt, ring_operators, dividable, dividable_left, modable, modable_left >

在文件 operators.hpp 第 436 行定义.

## ◆ field_operators

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::field_operators = typedef details::flat_ops<_type, _type2, _tOpt, ring_operators, dividable, dividable_left >

在文件 operators.hpp 第 428 行定义.

## ◆ forward_iteratable

template<class _type , typename _type2 , class _tOpt = use_constfn>

using ystdex::dep_ops::forward_iteratable = typedef details::ebases<input_iteratable<_type, _type2, _tOpt> >

在文件 operators.hpp 第 453 行定义.

## ◆ input_iteratable

template<class _type , typename _type2 , class _tOpt = use_constfn>

using ystdex::dep_ops::input_iteratable = typedef details::ebases< equality_comparable<_type, _type, _tOpt>, incrementable<_type>, dereferenceable<_type, _type2, _tOpt> >

在文件 operators.hpp 第 445 行定义.

## ◆ integer_arithmetic

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::integer_arithmetic = typedef details::flat_ops<_type, _type2, _tOpt, additive, integer_multiplicative >

在文件 operators.hpp 第 405 行定义.

## ◆ integer_multiplicative

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::integer_multiplicative = typedef details::flat_ops<_type, _type2, _tOpt, multiplicative, modable >

在文件 operators.hpp 第 398 行定义.

## ◆ left_shiftable

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::left_shiftable = typedef _t<details::ops_seq<_type, _type2, _tOpt, details::ops_bin_id_seq< 5, 0, 1 > >>

在文件 operators.hpp 第 308 行定义.

## ◆ less_than_comparable

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::less_than_comparable = typedef _t<details::ops_seq<_type, _type2, _tOpt, cond_t<is_same<_type, _type2>, index_sequence< 2, 4, 1 >, index_sequence< 0, 1, 2, 3, 4, 5 > >> >

在文件 operators.hpp 第 262 行定义.

## ◆ modable

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::modable = typedef _t<details::ops_seq<_type, _type2, _tOpt, details::ops_bin_id_seq< 4, 0 , 1> >>

在文件 operators.hpp 第 305 行定义.

## ◆ modable_left

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::modable_left = typedef _t<details::ops_seq<_type, _type2, _tOpt, details::ops_bin_id_seq< 4, 4 , 5> >>

在文件 operators.hpp 第 305 行定义.

## ◆ multipliable

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::multipliable = typedef _t< details::ops_seq<_type, _type2, _tOpt, cond_t<is_same<_type, _type2>, details::ops_bin_id_seq< 2, 0 , 1>, details::ops_bin_id_seq< 2, 0 , 1 , 2 , 3> >> >

在文件 operators.hpp 第 299 行定义.

## ◆ multiplicative

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::multiplicative = typedef details::flat_ops<_type, _type2, _tOpt, multipliable, dividable >

在文件 operators.hpp 第 395 行定义.

## ◆ no_constfn

using ystdex::dep_ops::no_constfn = typedef false_

自从
  build 684

在文件 operators.hpp 第 59 行定义.

## ◆ operators

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::operators = typedef details::flat_ops<_type, _type2, _tOpt, totally_ordered, integer_arithmetic, bitwise >

注解
  第三模板参数调整生成的操作符的声明。
  当前二元和三元操作符都使用 yconstfn 。

待办事项:
  实现调整选项。

在文件 operators.hpp 第 472 行定义.

## ◆ orable

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::orable = typedef _t< details::ops_seq<_type, _type2, _tOpt, cond_t<is_same<_type, _type2>, details::ops_bin_id_seq< 9, 0 , 1>, details::ops_bin_id_seq< 9, 0 , 1 , 2 , 3> >> >

在文件 operators.hpp 第 320 行定义.

## ◆ ordered_euclidean_ring_operators

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::ordered_euclidean_ring_operators = typedef details::flat_ops<_type, _type2, _tOpt, totally_ordered, euclidean_ring_operators >

在文件 operators.hpp 第 440 行定义.

## ◆ ordered_field_operators

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::ordered_field_operators = typedef details::flat_ops<_type, _type2, _tOpt, field_operators, totally_ordered >

在文件 operators.hpp 第 432 行定义.

## ◆ ordered_ring_operators

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::ordered_ring_operators = typedef details::flat_ops<_type, _type2, _tOpt, ring_operators, totally_ordered >

在文件 operators.hpp 第 424 行定义.

## ◆ output_iteratable

template<class _type , typename _type2 , class _tOpt = use_constfn>

using ystdex::dep_ops::output_iteratable = typedef details::ebases<incrementable<_type> >

在文件 operators.hpp 第 449 行定义.

## ◆ partially_ordered

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::partially_ordered = typedef _t<details::ops_seq<_type, _type2, _tOpt, cond_t<is_same<_type, _type2>, index_sequence< 2, 11, 14 >, index_sequence< 11, 12, 2, 3, 13, 14 > >> >

在文件 operators.hpp 第 272 行定义.

## ◆ random_access_iteratable

template<class _type , typename _type2 , typename _type3 , class _tOpt = use_constfn>

using ystdex::dep_ops::random_access_iteratable = typedef details::ebases<bidirectional_iteratable<_type, _type3, _tOpt>, less_than_comparable<_type, _type, _tOpt>, additive<_type, _type2, _tOpt>, indexable<_type, _type2, _type, _tOpt> >

在文件 operators.hpp 第 461 行定义.

## ◆ right_shiftable

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::right_shiftable = typedef _t<details::ops_seq<_type, _type2, _tOpt, details::ops_bin_id_seq< 6, 0, 1 > >>

在文件 operators.hpp 第 311 行定义.

## ◆ ring_operators

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::ring_operators = typedef details::flat_ops<_type, _type2, _tOpt, additive, subtractable_left, multipliable >

在文件 operators.hpp 第 420 行定义.

## ◆ shiftable

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::shiftable = typedef details::flat_ops<_type, _type2, _tOpt, left_shiftable, right_shiftable >

在文件 operators.hpp 第 416 行定义.

## ◆ subtractable

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::subtractable = typedef _t<details::ops_seq<_type, _type2, _tOpt, details::ops_bin_id_seq< 1, 0 , 1> >>

在文件 operators.hpp 第 296 行定义.

## ◆ subtractable_left

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::subtractable_left = typedef _t<details::ops_seq<_type, _type2, _tOpt, details::ops_bin_id_seq< 1, 4 , 5> >>

在文件 operators.hpp 第 296 行定义.

## ◆ totally_ordered

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::totally_ordered = typedef details::flat_ops<_type, _type2, _tOpt, less_than_comparable, equality_comparable >

在文件 operators.hpp 第 389 行定义.

## ◆ unit_steppable

template<class _type , class _tOpt = use_constfn>

using ystdex::dep_ops::unit_steppable = typedef details::ebases<incrementable<_type>, decrementable<_type> >

在文件 operators.hpp 第 412 行定义.

## ◆ use_constfn

using ystdex::dep_ops::use_constfn = typedef true_

自从
  build 682

在文件 operators.hpp 第 61 行定义.

## ◆ xorable

template<class _type , typename _type2 = _type, class _tOpt = use_constfn>

using ystdex::dep_ops::xorable = typedef _t< details::ops_seq<_type, _type2, _tOpt, cond_t<is_same<_type, _type2>, details::ops_bin_id_seq< 7, 0 , 1>, details::ops_bin_id_seq< 7, 0 , 1 , 2 , 3> >> >

在文件 operators.hpp 第 314 行定义.