⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 concept_checks.h

📁 STL 最新源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
  __dereference_operator_requirement_violation(_Iterator __i) {    __sink_unused_warning(*__i);  }  template <class _Iterator>  static void  __dereference_operator_and_assignment_requirement_violation(_Iterator __i) {    *__i = *__i;  }  template <class _Iterator>  static void  __preincrement_operator_requirement_violation(_Iterator __i) {    ++__i;  }  template <class _Iterator>  static void  __postincrement_operator_requirement_violation(_Iterator __i) {    __i++;  }  template <class _Iterator>  static void  __predecrement_operator_requirement_violation(_Iterator __i) {    --__i;  }  template <class _Iterator>  static void  __postdecrement_operator_requirement_violation(_Iterator __i) {    __i--;  }  template <class _Iterator, class _Type>  static void  __postincrement_operator_and_assignment_requirement_violation(_Iterator __i,                                                                _Type __t) {    *__i++ = __t;  }  template <class _Iterator, class _Distance>  static _Iterator  __iterator_addition_assignment_requirement_violation(_Iterator __i,                                                        _Distance __n) {    __i += __n;    return __i;  }  template <class _Iterator, class _Distance>  static _Iterator  __iterator_addition_requirement_violation(_Iterator __i, _Distance __n) {    __i = __i + __n;    __i = __n + __i;    return __i;  }  template <class _Iterator, class _Distance>  static _Iterator  __iterator_subtraction_assignment_requirement_violation(_Iterator __i,                                                          _Distance __n) {    __i -= __n;    return __i;  }  template <class _Iterator, class _Distance>  static _Iterator  __iterator_subtraction_requirement_violation(_Iterator __i, _Distance __n) {    __i = __i - __n;    return __i;  }  template <class _Iterator, class _Distance>  static _Distance  __difference_operator_requirement_violation(_Iterator __i, _Iterator __j,                                              _Distance __n) {    __n = __i - __j;    return __n;  }  template <class _Exp, class _Type, class _Distance>  static _Type  __element_access_operator_requirement_violation(_Exp __x, _Type*,                                                  _Distance __n) {    return __x[__n];  }  template <class _Exp, class _Type, class _Distance>  static void  __element_assignment_operator_requirement_violation(_Exp __x,                                                      _Type* __t,                                                      _Distance __n) {    __x[__n] = *__t;  }}; /* _STL_ERROR *//* Associated Type Requirements */__STL_BEGIN_NAMESPACEtemplate <class _Iterator> struct iterator_traits;__STL_END_NAMESPACEtemplate <class _Iter> struct __value_type_type_definition_requirement_violation {  typedef typename __STD::iterator_traits<_Iter>::value_type value_type;};template <class _Iter> struct __difference_type_type_definition_requirement_violation {  typedef typename __STD::iterator_traits<_Iter>::difference_type          difference_type;};template <class _Iter> struct __reference_type_definition_requirement_violation {  typedef typename __STD::iterator_traits<_Iter>::reference reference;};template <class _Iter> struct __pointer_type_definition_requirement_violation {  typedef typename __STD::iterator_traits<_Iter>::pointer pointer;};template <class _Iter> struct __iterator_category_type_definition_requirement_violation {  typedef typename __STD::iterator_traits<_Iter>::iterator_category           iterator_category;};/* Assignable Requirements */template <class _Type>struct _Assignable_concept_specification {  static void _Assignable_requirement_violation(_Type __a) {    _STL_ERROR::__assignment_operator_requirement_violation(__a);    _STL_ERROR::__copy_constructor_requirement_violation(__a);    _STL_ERROR::__const_parameter_required_for_copy_constructor(__a,__a);    _STL_ERROR::__const_parameter_required_for_assignment_operator(__a,__a);  }};/* DefaultConstructible Requirements */template <class _Type>struct _DefaultConstructible_concept_specification {  static void _DefaultConstructible_requirement_violation(_Type __a) {    _STL_ERROR::__default_constructor_requirement_violation(__a);  }};/* EqualityComparable Requirements */template <class _Type>struct _EqualityComparable_concept_specification {  static void _EqualityComparable_requirement_violation(_Type __a) {    _STL_ERROR::__equality_comparable_requirement_violation(__a, __a);  }};/* LessThanComparable Requirements */template <class _Type>struct _LessThanComparable_concept_specification {  static void _LessThanComparable_requirement_violation(_Type __a) {    _STL_ERROR::__less_than_comparable_requirement_violation(__a, __a);  }};/* TrivialIterator Requirements */template <class _TrivialIterator>struct _TrivialIterator_concept_specification {static void_TrivialIterator_requirement_violation(_TrivialIterator __i) {  typedef typename    __value_type_type_definition_requirement_violation<_TrivialIterator>::    value_type __T;  // Refinement of Assignable  _Assignable_concept_specification<_TrivialIterator>::    _Assignable_requirement_violation(__i);  // Refinement of DefaultConstructible  _DefaultConstructible_concept_specification<_TrivialIterator>::    _DefaultConstructible_requirement_violation(__i);  // Refinement of EqualityComparable  _EqualityComparable_concept_specification<_TrivialIterator>::    _EqualityComparable_requirement_violation(__i);  // Valid Expressions  _STL_ERROR::__dereference_operator_requirement_violation(__i);}};template <class _TrivialIterator>struct _Mutable_TrivialIterator_concept_specification {static void_Mutable_TrivialIterator_requirement_violation(_TrivialIterator __i) {  _TrivialIterator_concept_specification<_TrivialIterator>::    _TrivialIterator_requirement_violation(__i);  // Valid Expressions  _STL_ERROR::__dereference_operator_and_assignment_requirement_violation(__i);}};/* InputIterator Requirements */template <class _InputIterator>struct _InputIterator_concept_specification {static void_InputIterator_requirement_violation(_InputIterator __i) {  // Refinement of TrivialIterator  _TrivialIterator_concept_specification<_InputIterator>::    _TrivialIterator_requirement_violation(__i);  // Associated Types  __difference_type_type_definition_requirement_violation<_InputIterator>();  __reference_type_definition_requirement_violation<_InputIterator>();  __pointer_type_definition_requirement_violation<_InputIterator>();  __iterator_category_type_definition_requirement_violation<_InputIterator>();  // Valid Expressions  _STL_ERROR::__preincrement_operator_requirement_violation(__i);  _STL_ERROR::__postincrement_operator_requirement_violation(__i);}};/* OutputIterator Requirements */template <class _OutputIterator>struct _OutputIterator_concept_specification {static void_OutputIterator_requirement_violation(_OutputIterator __i) {  // Refinement of Assignable  _Assignable_concept_specification<_OutputIterator>::    _Assignable_requirement_violation(__i);  // Associated Types  __iterator_category_type_definition_requirement_violation<_OutputIterator>();  // Valid Expressions  _STL_ERROR::__dereference_operator_requirement_violation(__i);  _STL_ERROR::__preincrement_operator_requirement_violation(__i);  _STL_ERROR::__postincrement_operator_requirement_violation(__i);  _STL_ERROR::    __postincrement_operator_and_assignment_requirement_violation(__i, *__i);}};/* ForwardIterator Requirements */template <class _ForwardIterator>struct _ForwardIterator_concept_specification {static void_ForwardIterator_requirement_violation(_ForwardIterator __i) {  // Refinement of InputIterator  _InputIterator_concept_specification<_ForwardIterator>::    _InputIterator_requirement_violation(__i);}};template <class _ForwardIterator>struct _Mutable_ForwardIterator_concept_specification {static void_Mutable_ForwardIterator_requirement_violation(_ForwardIterator __i) {  _ForwardIterator_concept_specification<_ForwardIterator>::    _ForwardIterator_requirement_violation(__i);  // Refinement of OutputIterator  _OutputIterator_concept_specification<_ForwardIterator>::    _OutputIterator_requirement_violation(__i);}};/* BidirectionalIterator Requirements */template <class _BidirectionalIterator>struct _BidirectionalIterator_concept_specification {static void_BidirectionalIterator_requirement_violation(_BidirectionalIterator __i) {  // Refinement of ForwardIterator  _ForwardIterator_concept_specification<_BidirectionalIterator>::    _ForwardIterator_requirement_violation(__i);  // Valid Expressions  _STL_ERROR::__predecrement_operator_requirement_violation(__i);  _STL_ERROR::__postdecrement_operator_requirement_violation(__i);}};template <class _BidirectionalIterator>struct _Mutable_BidirectionalIterator_concept_specification {static void_Mutable_BidirectionalIterator_requirement_violation(       _BidirectionalIterator __i){  _BidirectionalIterator_concept_specification<_BidirectionalIterator>::    _BidirectionalIterator_requirement_violation(__i);  // Refinement of mutable_ForwardIterator  _Mutable_ForwardIterator_concept_specification<_BidirectionalIterator>::    _Mutable_ForwardIterator_requirement_violation(__i);  typedef typename    __value_type_type_definition_requirement_violation<    _BidirectionalIterator>::value_type __T;  typename _Mutable_trait<__T>::_Type* __tmp_ptr = 0;  // Valid Expressions  _STL_ERROR::    __postincrement_operator_and_assignment_requirement_violation(__i,                                                                  *__tmp_ptr);}};/* RandomAccessIterator Requirements */template <class _RandAccIter>struct _RandomAccessIterator_concept_specification {static void_RandomAccessIterator_requirement_violation(_RandAccIter __i) {  // Refinement of BidirectionalIterator  _BidirectionalIterator_concept_specification<_RandAccIter>::    _BidirectionalIterator_requirement_violation(__i);  // Refinement of LessThanComparable  _LessThanComparable_concept_specification<_RandAccIter>::    _LessThanComparable_requirement_violation(__i);  typedef typename         __value_type_type_definition_requirement_violation<_RandAccIter>        ::value_type    value_type;  typedef typename        __difference_type_type_definition_requirement_violation<_RandAccIter>        ::difference_type     _Dist;  typedef typename _Mutable_trait<_Dist>::_Type _MutDist;  // Valid Expressions  _STL_ERROR::__iterator_addition_assignment_requirement_violation(__i,                                                                   _MutDist());  _STL_ERROR::__iterator_addition_requirement_violation(__i,                                                        _MutDist());  _STL_ERROR::    __iterator_subtraction_assignment_requirement_violation(__i,                                                            _MutDist());  _STL_ERROR::__iterator_subtraction_requirement_violation(__i,                                                           _MutDist());  _STL_ERROR::__difference_operator_requirement_violation(__i, __i,                                                          _MutDist());  typename _Mutable_trait<value_type>::_Type* __dummy_ptr = 0;  _STL_ERROR::__element_access_operator_requirement_violation(__i,                                                              __dummy_ptr,                                                              _MutDist());}};template <class _RandAccIter>struct _Mutable_RandomAccessIterator_concept_specification {static void_Mutable_RandomAccessIterator_requirement_violation(_RandAccIter __i){  _RandomAccessIterator_concept_specification<_RandAccIter>::    _RandomAccessIterator_requirement_violation(__i);  // Refinement of mutable_BidirectionalIterator  _Mutable_BidirectionalIterator_concept_specification<_RandAccIter>::    _Mutable_BidirectionalIterator_requirement_violation(__i);  typedef typename        __value_type_type_definition_requirement_violation<_RandAccIter>        ::value_type    value_type;  typedef typename        __difference_type_type_definition_requirement_violation<_RandAccIter>        ::difference_type    _Dist;  typename _Mutable_trait<value_type>::_Type* __tmp_ptr = 0;  // Valid Expressions  _STL_ERROR::__element_assignment_operator_requirement_violation(__i,                  __tmp_ptr, _Dist());}};#define __STL_TYPEDEF_REQUIREMENT(__REQUIREMENT) \template <class Type> \struct __##__REQUIREMENT##__typedef_requirement_violation { \  typedef typename Type::__REQUIREMENT __REQUIREMENT; \}__STL_TYPEDEF_REQUIREMENT(value_type);__STL_TYPEDEF_REQUIREMENT(difference_type);__STL_TYPEDEF_REQUIREMENT(size_type);__STL_TYPEDEF_REQUIREMENT(reference);__STL_TYPEDEF_REQUIREMENT(const_reference);__STL_TYPEDEF_REQUIREMENT(pointer);__STL_TYPEDEF_REQUIREMENT(const_pointer);template <class _Alloc>struct _Allocator_concept_specification {static void_Allocator_requirement_violation(_Alloc __a) {  // Refinement of DefaultConstructible  _DefaultConstructible_concept_specification<_Alloc>::    _DefaultConstructible_requirement_violation(__a);  // Refinement of EqualityComparable  _EqualityComparable_concept_specification<_Alloc>::    _EqualityComparable_requirement_violation(__a);  // Associated Types  __value_type__typedef_requirement_violation<_Alloc>();  __difference_type__typedef_requirement_violation<_Alloc>();  __size_type__typedef_requirement_violation<_Alloc>();  __reference__typedef_requirement_violation<_Alloc>();  __const_reference__typedef_requirement_violation<_Alloc>();  __pointer__typedef_requirement_violation<_Alloc>();  __const_pointer__typedef_requirement_violation<_Alloc>();  typedef typename _Alloc::value_type _Tp;  //__STL_REQUIRES_SAME_TYPE(typename _Alloc::__STL_TEMPLATE rebind<_Tp>::other,  //                         _Alloc);}};#endif /* __STL_USE_CONCEPT_CHECKS */#endif /* __CONCEPT_CHECKS_H */// Local Variables:// mode:C++// End:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -