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

YSTest PreAlpha_b700_20160611 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 命名空间列表
- 命名空间成员

类 | 类型定义 | 函数
ystdex::details 命名空间参考
Cast | Hash Extensions Template Meta Programing » Meta Operations » | Metafunctions

## 类

struct | any_base
struct | any_emplace
struct | bin_ops
struct | bin_ops< 0, _type, _type2, dep_ops::no_constfn >
struct | bin_ops< 0, _type, _type2, dep_ops::use_constfn >
struct | bin_ops< 1, _type, _type2, dep_ops::no_constfn >
struct | bin_ops< 1, _type, _type2, dep_ops::use_constfn >
struct | bin_ops< 10, _type, _type2, dep_ops::no_constfn >
struct | bin_ops< 10, _type, _type2, dep_ops::use_constfn >
struct | bin_ops< 11, _type, _type2, dep_ops::no_constfn >
struct | bin_ops< 11, _type, _type2, dep_ops::use_constfn >
struct | bin_ops< 12, _type, _type2, dep_ops::no_constfn >
struct | bin_ops< 12, _type, _type2, dep_ops::use_constfn >
struct | bin_ops< 13, _type, _type2, dep_ops::no_constfn >
struct | bin_ops< 13, _type, _type2, dep_ops::use_constfn >
struct | bin_ops< 14, _type, _type2, dep_ops::no_constfn >
struct | bin_ops< 14, _type, _type2, dep_ops::use_constfn >
struct | bin_ops< 2, _type, _type2, dep_ops::no_constfn >
struct | bin_ops< 2, _type, _type2, dep_ops::use_constfn >
struct | bin_ops< 3, _type, _type2, dep_ops::no_constfn >
struct | bin_ops< 3, _type, _type2, dep_ops::use_constfn >
struct | bin_ops< 4, _type, _type2, dep_ops::no_constfn >
struct | bin_ops< 4, _type, _type2, dep_ops::use_constfn >
struct | bin_ops< 5, _type, _type2, dep_ops::no_constfn >
struct | bin_ops< 5, _type, _type2, dep_ops::use_constfn >
struct | bin_ops< 6, _type, _type2, dep_ops::no_constfn >
struct | bin_ops< 6, _type, _type2, dep_ops::use_constfn >
struct | bin_ops< 7, _type, _type2, dep_ops::no_constfn >
struct | bin_ops< 7, _type, _type2, dep_ops::use_constfn >
struct | bin_ops< 8, _type, _type2, dep_ops::no_constfn >
struct | bin_ops< 8, _type, _type2, dep_ops::use_constfn >
struct | bin_ops< 9, _type, _type2, dep_ops::no_constfn >
struct | bin_ops< 9, _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(0 , 0), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(0 , 0), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(0 , 1), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(0 , 1), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(0 , 2), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(0 , 2), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(0 , 3), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(0 , 3), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(1 , 0), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(1 , 0), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(1 , 1), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(1 , 1), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(1 , 4), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(1 , 4), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(1 , 5), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(1 , 5), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(2 , 0), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(2 , 0), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(2 , 1), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(2 , 1), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(2 , 2), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(2 , 2), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(2 , 3), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(2 , 3), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(3 , 0), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(3 , 0), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(3 , 1), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(3 , 1), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(3 , 4), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(3 , 4), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(3 , 5), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(3 , 5), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(4 , 0), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(4 , 0), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(4 , 1), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(4 , 1), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(4 , 4), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(4 , 4), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(4 , 5), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(4 , 5), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(5 , 0), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(5 , 0), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(5 , 1), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(5 , 1), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(5 , 2), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(5 , 2), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(5 , 3), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(5 , 3), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(6 , 0), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(6 , 0), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(6 , 1), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(6 , 1), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(6 , 2), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(6 , 2), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(6 , 3), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(6 , 3), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(7 , 0), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(7 , 0), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(7 , 1), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(7 , 1), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(7 , 2), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(7 , 2), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(7 , 3), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(7 , 3), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(8 , 0), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(8 , 0), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(8 , 1), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(8 , 1), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(9 , 0), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(9 , 0), _type, _type2, dep_ops::use_constfn >
struct | bin_ops< ops_bin_id(9 , 1), _type, _type2, dep_ops::no_constfn >
struct | bin_ops< ops_bin_id(9 , 1), _type, _type2, dep_ops::use_constfn >
struct | bit_order_tester
union | byte_order_tester
struct | combined_hash_tuple
struct | combined_hash_tuple< _type, index_sequence< _vSeq... > >
struct | detector
struct | detector< _tDefault, void_t< _gOp< _tParams... > >, _gOp, _tParams... >
struct | ebases
struct | general_cast_helper
struct | general_cast_helper< _tFrom, _tTo, false >
struct | general_cast_helper< _type, _type, false >
struct | general_cast_helper< _type, _type, true >
struct | general_cast_type_helper
struct | general_polymorphic_cast_helper
struct | general_polymorphic_cast_helper< _tFrom, _tTo, false >
struct | has_nonempty_virtual_base
struct | have_common_nonempty_virtual_base
struct | is_callable_case1
struct | is_callable_case2
struct | is_callable_case3
struct | is_callable_case4
struct | is_callable_target
struct | is_referenceable_function
struct | is_referenceable_function< _tRes(_tParams...)>
struct | is_referenceable_function< _tRes(_tParams...,...)>
struct | is_string_like
struct | is_string_like< _type, enable_if_t< is_object< decay_t< decltype(std::declval< _type >()[0])> >::value > >
struct | iterator_operators
struct | iterator_operators< _tIter, _tTraits, std::bidirectional_iterator_tag >
struct | iterator_operators< _tIter, _tTraits, std::forward_iterator_tag >
struct | iterator_operators< _tIter, _tTraits, std::input_iterator_tag >
struct | iterator_operators< _tIter, _tTraits, std::output_iterator_tag >
struct | iterator_operators< _tIter, _tTraits, std::random_access_iterator_tag >
struct | member_target_type_impl
struct | member_target_type_impl< _type _tClass::* >
struct | op_idt
struct | ops_seq
struct | ops_seq< _type, _type2, _tOpt, index_sequence< _vSeq... > >
class | optional_base
class | optional_base< _type, true >
struct | pack_obj_impl
struct | pack_obj_impl< std::shared_ptr< _type > >
struct | pack_obj_impl< std::unique_ptr< _type, _tDeleter > >
struct | state_guard_impl
struct | state_guard_traits
struct | state_guard_traits< _type, _tToken, true >
struct | ston_dispatcher
struct | ston_dispatcher< std::string, double >
struct | ston_dispatcher< std::string, float >
struct | ston_dispatcher< std::string, int >
struct | ston_dispatcher< std::string, long >
struct | ston_dispatcher< std::string, long double >
struct | ston_dispatcher< std::string, long long >
struct | ston_dispatcher< std::string, unsigned long >
struct | ston_dispatcher< std::string, unsigned long long >
struct | str_algo
struct | str_algo< index_sequence< _vIdx, _vSeq... > >
struct | str_algo< index_sequence<> >
struct | str_algos
struct | str_algos< 0 >
struct | str_algos< 1 >
struct | tcompare
struct | tcompare< _tWrappedKey, _fComp, true >
struct | thunk_call_proxy
struct | thunk_caller
struct | transit_traits
struct | tuple_element_convertible
struct | tuple_element_convertible< _type1, _type2, index_sequence<> >
struct | tuple_element_convertible< std::tuple< _types1... >, std::tuple< _types2... >, index_sequence< _vHead, _vSeq... > >
class | wrapped_key

## 类型定义

template<class _type >
using | mapped_type_t = typename _type::mapped_type
template<class _type , typename = void>
using | mem_is_transparent_t = typename _type::is_transparent
template<typename _type >
using | is_copy_constructible_class = and_< is_copy_constructible< _type >, is_class_type< _type >>
template<class _tAlloc , typename _type >
using | rebind_t = typename _tAlloc::template rebind< _type >::other
template<typename _type >
using | check_allocator = and_< cond_t< has_mem_value_type< _type >, is_detected< rebind_t, _type, vdefer< details::mem_value_type_t, _type >>>, is_copy_constructible_class< _type >>
template<typename _type >
using | nested_allocator_t = typename _type::allocator_type
template<typename _type >
using | nptr_eq1 = bool_constant< _type()==_type()>
template<typename _type >
using | nptr_eq2 = bool_constant< _type(nullptr)==nullptr >
template<class _tSize , class _tIndex >
using | index_conv = integral_constant< size_t, _tSize::value==_tIndex::value?tuple_not_found:_tIndex::value >
template<typename _type , typename _type2 >
using | subscription_t = decltype(std::declval< _type >()[std::declval< _type2 >()])
template<typename _type , typename _type2 >
using | equality_operator_t = decltype(std::declval< _type >()==std::declval< _type2 >())
template<typename _type >
using | mem_value_t = decltype(std::declval< _type >().value)
template<typename _type >
using | mem_value_type_t = typename _type::value_type
template<typename _type >
using | addressof_mem_t = decltype(std::declval< const _type & >().operator&())
template<typename _type >
using | addressof_free_t = decltype(operator&(std::declval< const _type & >()))
template<class _type >
using | range_size_t = decltype(size(std::declval< _type >()))
template<class _type >
using | has_range_size = is_detected_convertible< size_t, range_size_t, _type >
template<typename _type = void>
using | op_idt_t = _t< op_idt< _type >>

## 函数

template<typename _tRange >
auto | range_size (const _tRange &c, true_type) -> decltype(size(c))
template<typename _tRange >
auto | range_size (const _tRange &c, false_type) -> decltype(std::distance(begin(c), end(c)))
template<class _tCon , typename _tKey >
bool | exists (const _tCon &con, const _tKey &key, decltype(std::declval< _tCon >().count())=1U)
template<class _tCon , typename _tKey >
bool | exists (const _tCon &con, const _tKey &key,...)
template<class _tAssocCon >
const _tAssocCon::key_type & | extract_key (const typename _tAssocCon::value_type &val, false_type)
template<class _tAssocCon >
const _tAssocCon::key_type & | extract_key (const typename _tAssocCon::value_type &val, true_type)
template<class _tAssocCon , typename _tKey , typename _tParam >
std::pair< typename _tAssocCon::iterator, bool > | insert_or_assign (std::pair< typename _tAssocCon::iterator, bool > pr, _tAssocCon &con, _tKey &&k, _tParam &&arg)
template<typename _fCallable , typename _type , typename... _tParams>
auto | invoke_impl (_fCallable &&f, _type &&obj, _tParams &&...args) -> enable_if_t< is_callable_case1< decay_t< _fCallable >, _type >::value, decltype((obj.*f)(std::forward< decltype(args)>(args)...))>
template<typename _fCallable , typename _type >
auto | invoke_impl (_fCallable &&f, _type &&obj) -> enable_if_t< is_callable_case3< decay_t< _fCallable >, _type >::value, decltype(obj.*f)>
template<typename _func , typename... _tParams>
auto | invoke_impl (_func &&f, _tParams &&...args) -> enable_if_t<!is_member_pointer< decay_t< _func >>::value, decltype(std::forward< decltype(f)>(f)(std::forward< decltype(args)>(args)...))>
template<typename _fCallable , typename... _tParams>
pseudo_output | invoke_nonvoid_impl (true_type, _fCallable &&f, _tParams &&...args)
template<typename _fCallable , typename... _tParams>
result_of_t< _fCallable &&(_tParams &&...)> | invoke_nonvoid_impl (false_type, _fCallable &&f, _tParams &&...args)
template<typename _type , typename _fCallable , typename... _tParams>
_type | call_for_value (std::true_type, _type &&val, _fCallable &&f, _tParams &&...args)
template<typename _type , typename _fCallable , typename... _tParams>
auto | call_for_value (std::false_type, _type &&, _fCallable &&f, _tParams &&...args) -> result_of_t< _fCallable &&(_tParams &&...)>
template<typename _tFwd1 , typename _tFwd2 , typename _fPred >
bool | ends_with_iter_dispatch (_tFwd1 b, _tFwd1 e, _tFwd2 bt, _tFwd2 et, _fPred comp, std::bidirectional_iterator_tag)
template<class _type , typename... _tParams>
using | mem_remove_t = decltype(std::declval< _type >().remove(std::declval< _tParams >()...))
template<typename _type , typename... _tParams>
using | has_mem_remove = is_detected< mem_remove_t, _type, _tParams... >
template<class _type , typename... _tParams>
using | mem_remove_if_t = decltype(std::declval< _type >().remove_if(std::declval< _tParams >()...))
template<typename _type , typename... _tParams>
using | has_mem_remove_if = is_detected< mem_remove_if_t, _type, _tParams... >
template<class _type >
using | key_type_t = typename _type::key_type
template<typename _type >
using | has_mem_key_type = is_detected< key_type_t, _type >
template<typename _tSeqCon , typename _type >
void | erase_remove (_tSeqCon &con, decltype(begin(con)) first, decltype(end(con)) last, const _type &value)
template<typename _tSeqCon , typename _fPred >
void | erase_remove_if (_tSeqCon &con, decltype(begin(con)) first, decltype(end(con)) last, _fPred pred)
template<typename _tSeqCon , typename _type >
void | erase_all_in_seq (_tSeqCon &con, _type &&value, true_type)
template<typename _tSeqCon , typename _type >
void | erase_all_in_seq (_tSeqCon &con, const _type &value, false_type)
template<typename _tSeqCon , typename _fPred >
void | erase_all_if_in_seq (_tSeqCon &con, _fPred pred, true_type)
template<typename _tSeqCon , typename _fPred >
void | erase_all_if_in_seq (_tSeqCon &con, _fPred pred, false_type)
template<typename _tCon , typename _type >
void | erase_all (_tCon &con, decltype(cbegin(con)) first, decltype(cend(con)) last, const _type &value, true_type)
template<typename _tCon , typename _type >
void | erase_all (_tCon &con, const _type &value, true_type)
template<typename _tCon , typename _type >
void | erase_all (_tCon &con, decltype(begin(con)) first, decltype(end(con)) last, const _type &value, false_type)
template<typename _tCon , typename _type >
void | erase_all (_tCon &con, const _type &value, false_type)
template<typename _tCon , typename _fPred >
void | erase_all_if (_tCon &con, decltype(cbegin(con)) first, decltype(cend(con)) last, _fPred pred, true_type)
template<typename _tCon , typename _fPred >
void | erase_all_if (_tCon &con, _fPred pred, true_type)
template<typename _tCon , typename _fPred >
void | erase_all_if (_tCon &con, decltype(begin(con)) first, decltype(end(con)) last, _fPred pred, false_type)
template<typename _tCon , typename _fPred >
void | erase_all_if (_tCon &con, _fPred pred, false_type)
template<size_t _vID, size_t... _vSeq>
using | ops_bin_id_seq = index_sequence< ops_bin_id(_vID, _vSeq)... >
template<class _type , typename _type2 , class _tOpt , template< typename... > class... _gOps>
using | flat_ops = vseq::defer_t< ebases, vseq::fold_t< vseq::_a< vseq::concat_t >, empty_base<>, empty_base< vseq::defer_t< empty_base, _gOps< _type, _type2, _tOpt >>... >>>
size_t | ops_bin_id (size_t id, size_t off)

## 详细描述

自从
  build 687
  build 546
  build 488
  build 677
  build 695
  build 447
  build 612
  build 606
  build 679
  build 576
  build 595
  build 591
  build 685
  build 450
  build 542
  build 649

参见
  WG21 N4502 。

## 类型定义说明

template<typename _type >

using ystdex::details::addressof_free_t = typedef decltype(operator&(std::declval<const _type&>()))

在文件 addressof.hpp 第 51 行定义.

template<typename _type >

using ystdex::details::addressof_mem_t = typedef decltype(std::declval<const _type&>().operator&())

自从
  build 649

在文件 addressof.hpp 第 48 行定义.

template<typename _type >

using ystdex::details::check_allocator = typedef and_<cond_t<has_mem_value_type<_type>, is_detected<rebind_t, _type, vdefer<details::mem_value_type_t, _type>>>, is_copy_constructible_class<_type>>

自从
  build 650

在文件 memory.hpp 第 78 行定义.

template<class _type , typename _type2 , class _tOpt , template< typename... > class... _gOps>

using ystdex::details::flat_ops = typedef vseq::defer_t<ebases, vseq::fold_t<vseq::_a<vseq::concat_t>, empty_base<>, empty_base<vseq::defer_t<empty_base, _gOps<_type, _type2, _tOpt>>...>>>

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

template<typename _type >

using ystdex::details::has_mem_key_type = typedef is_detected<key_type_t, _type>

在文件 container.hpp 第 556 行定义.

template<typename _type , typename... _tParams>

using ystdex::details::has_mem_remove = typedef is_detected<mem_remove_t, _type, _tParams...>

在文件 container.hpp 第 543 行定义.

template<typename _type , typename... _tParams>

using ystdex::details::has_mem_remove_if = typedef is_detected<mem_remove_if_t, _type, _tParams...>

在文件 container.hpp 第 550 行定义.

template<class _type >

using ystdex::details::has_range_size = typedef is_detected_convertible<size_t, range_size_t, _type>

在文件 container.hpp 第 347 行定义.

template<class _tSize , class _tIndex >

using ystdex::details::index_conv = typedef integral_constant<size_t, _tSize::value == _tIndex::value ? tuple_not_found : _tIndex::value>

在文件 tuple.hpp 第 119 行定义.

template<typename _type >

using ystdex::details::is_copy_constructible_class = typedef and_<is_copy_constructible<_type>, is_class_type<_type>>

在文件 memory.hpp 第 66 行定义.

template<class _type >

using ystdex::details::key_type_t = typedef typename _type::key_type

在文件 container.hpp 第 553 行定义.

template<class _type >

using ystdex::details::mapped_type_t = typedef typename _type::mapped_type

在文件 container.hpp 第 1012 行定义.

template<class _type , typename = void>

using ystdex::details::mem_is_transparent_t = typedef typename _type::is_transparent

自从
  build 680

在文件 functor.hpp 第 60 行定义.

template<class _type , typename... _tParams>

using ystdex::details::mem_remove_if_t = typedef decltype(std::declval<_type>().remove_if(std::declval<_tParams>()...))

在文件 container.hpp 第 547 行定义.

template<class _type , typename... _tParams>

using ystdex::details::mem_remove_t = typedef decltype(std::declval<_type>().remove(std::declval<_tParams>()...))

自从
  build 663

在文件 container.hpp 第 540 行定义.

template<typename _type >

using ystdex::details::nested_allocator_t = typedef typename _type::allocator_type

自从
  build 650

在文件 memory.hpp 第 82 行定义.

template<typename _type >

using ystdex::details::nptr_eq1 = typedef bool_constant<_type() == _type()>

在文件 pointer.hpp 第 45 行定义.

template<typename _type >

using ystdex::details::nptr_eq2 = typedef bool_constant<_type(nullptr) == nullptr>

在文件 pointer.hpp 第 47 行定义.

template<typename _type = void>

using ystdex::details::op_idt_t = typedef _t<op_idt<_type>>

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

template<size_t _vID, size_t... _vSeq>

using ystdex::details::ops_bin_id_seq = typedef index_sequence<ops_bin_id(_vID, _vSeq)...>

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

template<class _type >

using ystdex::details::range_size_t = typedef decltype(size(std::declval<_type>()))

自从
  build 663

在文件 container.hpp 第 344 行定义.

template<class _tAlloc , typename _type >

using ystdex::details::rebind_t = typedef typename _tAlloc::template rebind<_type>::other

自从
  build 651

在文件 memory.hpp 第 71 行定义.

## 函数说明

template<typename _type , typename _fCallable , typename... _tParams>

_type ystdex::details::call_for_value | ( | std::true_type | ,
|  | _type && | val,
|  | _fCallable && | f,
|  | _tParams &&... | args
| ) |  |

在文件 functional.hpp 第 816 行定义.

参考 CHRLib::args, ystdex::invoke() , 以及 yforward.

参考自 ystdex::call_for_value().

函数调用图:

这是这个函数的调用关系图:
template<typename _type , typename _fCallable , typename... _tParams>

auto ystdex::details::call_for_value | ( | std::false_type | ,
|  | _type && | ,
|  | _fCallable && | f,
|  | _tParams &&... | args
| ) |  | -> result_of_t<_fCallable&&(_tParams&&...)>

在文件 functional.hpp 第 824 行定义.

参考 CHRLib::args, ystdex::invoke() , 以及 yforward.

函数调用图:
template<typename _tFwd1 , typename _tFwd2 , typename _fPred >

bool ystdex::details::ends_with_iter_dispatch | ( | _tFwd1 | b,
|  | _tFwd1 | e,
|  | _tFwd2 | bt,
|  | _tFwd2 | et,
|  | _fPred | comp,
|  | std::bidirectional_iterator_tag |
| ) |  |

待办事项:
  支持 std::forward_iterator_tag 重载。

在文件 string.hpp 第 95 行定义.

参考 YSLib::i.

参考自 ystdex::ends_with().

这是这个函数的调用关系图:
template<typename _tCon , typename _type >

void ystdex::details::erase_all | ( | _tCon & | con,
|  | decltype(cbegin(con)) | first,
|  | decltype(cend(con)) | last,
|  | const _type & | value,
|  | true_type |
| ) |  |

在文件 container.hpp 第 603 行定义.

参考自 erase_all() , 以及 ystdex::erase_all().

这是这个函数的调用关系图:
template<typename _tCon , typename _type >

void ystdex::details::erase_all | ( | _tCon & | con,
|  | const _type & | value,
|  | true_type |
| ) |  |

inline

在文件 container.hpp 第 614 行定义.

参考 ystdex::cpp2014::cbegin(), ystdex::cpp2014::cend() , 以及 erase_all().

函数调用图:
template<typename _tCon , typename _type >

void ystdex::details::erase_all | ( | _tCon & | con,
|  | decltype(begin(con)) | first,
|  | decltype(end(con)) | last,
|  | const _type & | value,
|  | false_type |
| ) |  |

inline

在文件 container.hpp 第 620 行定义.

参考 erase_remove().

函数调用图:
template<typename _tCon , typename _type >

void ystdex::details::erase_all | ( | _tCon & | con,
|  | const _type & | value,
|  | false_type |
| ) |  |

inline

在文件 container.hpp 第 627 行定义.

参考 erase_all_in_seq().

函数调用图:
template<typename _tCon , typename _fPred >

void ystdex::details::erase_all_if | ( | _tCon & | con,
|  | decltype(cbegin(con)) | first,
|  | decltype(cend(con)) | last,
|  | _fPred | pred,
|  | true_type |
| ) |  |

在文件 container.hpp 第 634 行定义.

参考自 erase_all_if() , 以及 ystdex::erase_all_if().

这是这个函数的调用关系图:
template<typename _tCon , typename _fPred >

void ystdex::details::erase_all_if | ( | _tCon & | con,
|  | _fPred | pred,
|  | true_type |
| ) |  |

inline

在文件 container.hpp 第 645 行定义.

参考 ystdex::cpp2014::cbegin(), ystdex::cpp2014::cend() , 以及 erase_all_if().

函数调用图:
template<typename _tCon , typename _fPred >

void ystdex::details::erase_all_if | ( | _tCon & | con,
|  | decltype(begin(con)) | first,
|  | decltype(end(con)) | last,
|  | _fPred | pred,
|  | false_type |
| ) |  |

inline

在文件 container.hpp 第 651 行定义.

参考 erase_remove_if().

函数调用图:
template<typename _tCon , typename _fPred >

void ystdex::details::erase_all_if | ( | _tCon & | con,
|  | _fPred | pred,
|  | false_type |
| ) |  |

inline

在文件 container.hpp 第 658 行定义.

参考 erase_all_if_in_seq().

函数调用图:
template<typename _tSeqCon , typename _fPred >

void ystdex::details::erase_all_if_in_seq | ( | _tSeqCon & | con,
|  | _fPred | pred,
|  | true_type |
| ) |  |

inline

在文件 container.hpp 第 590 行定义.

参考自 erase_all_if().

这是这个函数的调用关系图:
template<typename _tSeqCon , typename _fPred >

void ystdex::details::erase_all_if_in_seq | ( | _tSeqCon & | con,
|  | _fPred | pred,
|  | false_type |
| ) |  |

inline

在文件 container.hpp 第 596 行定义.

参考 ystdex::cpp2011::begin(), ystdex::cpp2011::end() , 以及 erase_remove_if().

函数调用图:
template<typename _tSeqCon , typename _type >

void ystdex::details::erase_all_in_seq | ( | _tSeqCon & | con,
|  | _type && | value,
|  | true_type |
| ) |  |

inline

在文件 container.hpp 第 577 行定义.

参考 yforward.

参考自 erase_all().

这是这个函数的调用关系图:
template<typename _tSeqCon , typename _type >

void ystdex::details::erase_all_in_seq | ( | _tSeqCon & | con,
|  | const _type & | value,
|  | false_type |
| ) |  |

inline

在文件 container.hpp 第 583 行定义.

参考 ystdex::cpp2011::begin(), ystdex::cpp2011::end() , 以及 erase_remove().

函数调用图:
template<typename _tSeqCon , typename _type >

void ystdex::details::erase_remove | ( | _tSeqCon & | con,
|  | decltype(begin(con)) | first,
|  | decltype(end(con)) | last,
|  | const _type & | value
| ) |  |

inline

在文件 container.hpp 第 561 行定义.

参考自 erase_all() , 以及 erase_all_in_seq().

这是这个函数的调用关系图:
template<typename _tSeqCon , typename _fPred >

void ystdex::details::erase_remove_if | ( | _tSeqCon & | con,
|  | decltype(begin(con)) | first,
|  | decltype(end(con)) | last,
|  | _fPred | pred
| ) |  |

inline

在文件 container.hpp 第 569 行定义.

参考自 erase_all_if() , 以及 erase_all_if_in_seq().

这是这个函数的调用关系图:
template<class _tCon , typename _tKey >

bool ystdex::details::exists | ( | const _tCon & | con,
|  | const _tKey & | key,
|  | decltype(std::declval< _tCon >().count()) | = `1U`
| ) |  |

在文件 container.hpp 第 523 行定义.

参考自 ystdex::exists().

这是这个函数的调用关系图:
template<class _tCon , typename _tKey >

bool ystdex::details::exists | ( | const _tCon & | con,
|  | const _tKey & | key,
|  |  | ...
| ) |  |

在文件 container.hpp 第 530 行定义.

参考 ystdex::cpp2011::end().

函数调用图:
template<class _tAssocCon >

const _tAssocCon::key_type& ystdex::details::extract_key | ( | const typename _tAssocCon::value_type & | val,
|  | false_type |
| ) |  |

inline

在文件 container.hpp 第 1016 行定义.

template<class _tAssocCon >

const _tAssocCon::key_type& ystdex::details::extract_key | ( | const typename _tAssocCon::value_type & | val,
|  | true_type |
| ) |  |

inline

在文件 container.hpp 第 1022 行定义.

template<class _tAssocCon , typename _tKey , typename _tParam >

std::pair<typename _tAssocCon::iterator, bool> ystdex::details::insert_or_assign | ( | std::pair< typename _tAssocCon::iterator, bool > | pr,
|  | _tAssocCon & | con,
|  | _tKey && | k,
|  | _tParam && | arg
| ) |  |

自从
  build 681

在文件 container.hpp 第 1031 行定义.

参考 ystdex::emplace_hint_in_place() , 以及 yforward.

参考自 ystdex::insert_or_assign() , 以及 ystdex::insert_or_assign_hint().

函数调用图:

这是这个函数的调用关系图:
template<typename _fCallable , typename _type , typename... _tParams>

auto ystdex::details::invoke_impl | ( | _fCallable && | f,
|  | _type && | obj,
|  | _tParams &&... | args
| ) |  | -> enable_if_t<is_callable_case1<decay_t<_fCallable>, _type>::value, decltype((obj.*f)(std::forward<decltype( args )>( args )...))>

inline

在文件 functional.hpp 第 285 行定义.

参考 CHRLib::args, YSLib::IO::f, yconstraint , 以及 yforward.

参考自 ystdex::invoke().

这是这个函数的调用关系图:
template<typename _fCallable , typename _type >

auto ystdex::details::invoke_impl | ( | _fCallable && | f,
|  | _type && | obj
| ) |  | -> enable_if_t<is_callable_case3<decay_t<_fCallable>, _type>::value, decltype(obj.*f)>

inline

在文件 functional.hpp 第 301 行定义.

参考 YSLib::IO::f , 以及 yconstraint.

template<typename _func , typename... _tParams>

auto ystdex::details::invoke_impl | ( | _func && | f,
|  | _tParams &&... | args
| ) |  | -> enable_if_t<!is_member_pointer<decay_t<_func>>::value, decltype(std::forward<decltype( f )>( f )(std::forward<decltype( args )>( args )...))>

inline

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

参考 CHRLib::args , 以及 yforward.

template<typename _fCallable , typename... _tParams>

pseudo_output ystdex::details::invoke_nonvoid_impl | ( | true_type | ,
|  | _fCallable && | f,
|  | _tParams &&... | args
| ) |  |

inline

在文件 functional.hpp 第 348 行定义.

参考 CHRLib::args, ystdex::invoke() , 以及 yforward.

参考自 ystdex::invoke_nonvoid().

函数调用图:

这是这个函数的调用关系图:
template<typename _fCallable , typename... _tParams>

result_of_t<_fCallable&&(_tParams&&...)> ystdex::details::invoke_nonvoid_impl | ( | false_type | ,
|  | _fCallable && | f,
|  | _tParams &&... | args
| ) |  |

inline

在文件 functional.hpp 第 354 行定义.

参考 CHRLib::args, ystdex::invoke() , 以及 yforward.

函数调用图:

size_t ystdex::details::ops_bin_id | ( | size_t | id,
|  | size_t | off
| ) |  |

inline

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

template<typename _tRange >

auto ystdex::details::range_size | ( | const _tRange & | c,
|  | true_type |
| ) |  | -> decltype(size(c))

inline

在文件 container.hpp 第 352 行定义.

参考 CHRLib::c , 以及 ystdex::size().

参考自 main() , 以及 ystdex::range_size().

函数调用图:

这是这个函数的调用关系图:
template<typename _tRange >

auto ystdex::details::range_size | ( | const _tRange & | c,
|  | false_type |
| ) |  | -> decltype(std::distance(begin(c), end(c)))

inline

在文件 container.hpp 第 358 行定义.

参考 ystdex::cpp2011::begin(), CHRLib::c, ystdex::any_ops::distance , 以及 ystdex::cpp2011::end().

函数调用图: