ELC in dev
ELC-lang
载入中...
搜索中...
未找到
elc::defs::base::iterator_n::same_base_t< value_t, base_t_w > 模板类 参考
类 elc::defs::base::iterator_n::same_base_t< value_t, base_t_w > 继承关系图:
[图例]

Public 成员函数

constexpr void swap_with (this_t &a) noexcept(noexcept((swap((::std::declval< base_t_rw & >()),(::std::declval< base_t_rw & >())))))
 
constexpr same_base_t () noexcept=default
 
template<typename build_base_t_T >
requires (construct<base_t_rw>.able<build_base_t_T>)
constexpr same_base_t (build_base_t_T &&a) noexcept(construct< base_t_rw >.nothrow< build_base_t_T >)
 
constexpr same_base_t (const this_t &a) noexcept(construct< base_t_rw >.nothrow< const base_t_rw >)
 
constexpr same_base_t (this_t &&a) noexcept(noexcept((construct< base_t_rw >.nothrow< base_t_rw && >)))
 
template<typename other_T , typename other_base_t >
requires (construct<base_t_rw>.able<other_base_t>)
constexpr same_base_t (const same_base_t< other_T, other_base_t > &a) noexcept(construct< base_t_rw >.nothrow< other_base_t >)
 
 ~same_base_t () noexcept(destruct.nothrow< base_t_rw >)=default
 
constexpr bool operator== (const this_t &a) const noexcept(noexcept(((::std::declval< base_t_rw >())==(::std::declval< base_t_rw >()))))
 
constexpr value_t * operator-> () noexcept(is_handle_getter_noexcept())
 
constexpr value_type operator* () noexcept(is_value_getter_noexcept())
 
constexpr operator value_t * () noexcept(noexcept(((::std::declval< this_t >()).operator->())))
 
constexpr bool operator== (value_t *a) const noexcept(is_handle_getter_noexcept()&&noexcept(pointer_equal((::std::declval< value_t * >()),(::std::declval< value_t * >()))))
 
template<typename other_value_t , typename other_base_t_w >
requires (equal.able<base_t_rw,other_base_t_w>)
constexpr bool operator== (const same_base_t< other_value_t, other_base_t_w > &a) const noexcept(equal.nothrow< base_t_rw, other_base_t_w >)
 
template<typename other_value_t , typename other_base_t_w >
constexpr auto operator<=> (const same_base_t< other_value_t, other_base_t_w > &a) const noexcept(compare.nothrow< base_t_rw, other_base_t_w >)
 
constexpr this_toperator= (const this_t &) &noexcept=default
 
base_t_rwget_base () noexcept
 
const base_t_rwget_base () const noexcept
 

Protected 类型

typedef same_base_t< value_t, base_t_w > this_t
 
typedef remove_cv< base_t_w > base_t_rw
 
typedef decltype(value_type_getter()) ::template type value_type
 

Protected 成员函数

value_t * handle_getter () const noexcept(is_handle_getter_noexcept())
 
value_type value_getter () const noexcept(is_handle_getter_noexcept())
 
base_t_w next_getter () const noexcept(is_next_getter_noexcept())
 
base_t_w before_getter () const noexcept(is_before_getter_noexcept())
 

静态 Protected 成员函数

static constexpr bool is_able_to_get_handle () noexcept
 
static constexpr bool is_handle_getter_noexcept () noexcept
 
static constexpr bool is_value_getter_noexcept () noexcept
 
static constexpr auto value_type_getter () noexcept
 
static constexpr bool is_next_getter_noexcept () noexcept
 
static constexpr bool is_before_getter_noexcept () noexcept
 

Protected 属性

base_t_rw _m
 

友元

template<typename , typename >
class same_base_t
 

详细描述

template<typename value_t, typename base_t_w>
class elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >

在文件 all_defs.cpp10438 行定义.

成员类型定义说明

◆ base_t_rw

template<typename value_t , typename base_t_w >
typedef remove_cv<base_t_w> elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::base_t_rw
protected

在文件 all_defs.cpp10443 行定义.

◆ this_t

template<typename value_t , typename base_t_w >
typedef same_base_t<value_t,base_t_w> elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::this_t
protected

在文件 all_defs.cpp10442 行定义.

◆ value_type

template<typename value_t , typename base_t_w >
typedef decltype(value_type_getter()) ::template type elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::value_type
protected

在文件 all_defs.cpp10495 行定义.

构造及析构函数说明

◆ same_base_t() [1/5]

template<typename value_t , typename base_t_w >
constexpr elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::same_base_t ( )
constexprdefaultnoexcept

◆ same_base_t() [2/5]

template<typename value_t , typename base_t_w >
template<typename build_base_t_T >
requires (construct<base_t_rw>.able<build_base_t_T>)
constexpr elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::same_base_t ( build_base_t_T &&  a)
inlineconstexprnoexcept

在文件 all_defs.cpp10546 行定义.

10546:_m(a){}
constexpr T down_cast(U a) noexcept
向下转型至

◆ same_base_t() [3/5]

template<typename value_t , typename base_t_w >
constexpr elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::same_base_t ( const this_t a)
inlineconstexprnoexcept

在文件 all_defs.cpp10547 行定义.

10547:_m(a._m){}

◆ same_base_t() [4/5]

template<typename value_t , typename base_t_w >
constexpr elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::same_base_t ( this_t &&  a)
inlineconstexprnoexcept

在文件 all_defs.cpp10548 行定义.

10548:_m(move(a._m)){}
constexpr struct elc::defs::memory::lifetime_n::move_t move

◆ same_base_t() [5/5]

template<typename value_t , typename base_t_w >
template<typename other_T , typename other_base_t >
requires (construct<base_t_rw>.able<other_base_t>)
constexpr elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::same_base_t ( const same_base_t< other_T, other_base_t > &  a)
inlineconstexprnoexcept

在文件 all_defs.cpp10550 行定义.

10550:_m(a._m){}

◆ ~same_base_t()

template<typename value_t , typename base_t_w >
elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::~same_base_t ( )
defaultnoexcept

成员函数说明

◆ before_getter()

template<typename value_t , typename base_t_w >
base_t_w elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::before_getter ( ) const
inlineprotectednoexcept

在文件 all_defs.cpp10533 行定义.

10533 {
10535 return ((base_t_w)_m)-1;
10536 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w)->get_before()))
10537 return ((base_t_w)_m)->get_before();
10538 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w).get_before()))
10539 return ((base_t_w)_m).get_before();
10540 }
#define was_not_an_ill_form(...)
Definition all_defs.cpp:611
#define elseif
Definition all_defs.cpp:650
#define declvalue(...)
Definition all_defs.cpp:556

◆ get_base() [1/2]

template<typename value_t , typename base_t_w >
const base_t_rw & elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::get_base ( ) const
inlinenoexcept

在文件 all_defs.cpp10568 行定义.

10568{ return _m; }

◆ get_base() [2/2]

template<typename value_t , typename base_t_w >
base_t_rw & elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::get_base ( )
inlinenoexcept

在文件 all_defs.cpp10567 行定义.

10567{ return _m; }

◆ handle_getter()

template<typename value_t , typename base_t_w >
value_t * elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::handle_getter ( ) const
inlineprotectednoexcept

在文件 all_defs.cpp10467 行定义.

10467 {
10469 return ((base_t_w)_m);
10470 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w)->get_handle()))
10471 return ((base_t_w)_m)->get_handle();
10472 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w).get_handle()))
10473 return ((base_t_w)_m).get_handle();
10474 }
T * get_handle(attribute< T, attribute_name > *a) noexcept
函数调用图:

◆ is_able_to_get_handle()

template<typename value_t , typename base_t_w >
static constexpr bool elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::is_able_to_get_handle ( )
inlinestaticconstexprprotectednoexcept

在文件 all_defs.cpp10447 行定义.

10447 {
10449 return true;
10450 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w)->get_handle()))
10451 return true;
10452 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w).get_handle()))
10453 return true;
10454 else
10455 return false;
10456 }
函数调用图:

◆ is_before_getter_noexcept()

template<typename value_t , typename base_t_w >
static constexpr bool elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::is_before_getter_noexcept ( )
inlinestaticconstexprprotectednoexcept

在文件 all_defs.cpp10525 行定义.

10525 {
10527 return true;
10528 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w)->get_before()))
10529 return noexcept(declvalue(base_t_w)->get_before());
10530 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w).get_before()))
10531 return noexcept(declvalue(base_t_w).get_before());
10532 }

◆ is_handle_getter_noexcept()

template<typename value_t , typename base_t_w >
static constexpr bool elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::is_handle_getter_noexcept ( )
inlinestaticconstexprprotectednoexcept

在文件 all_defs.cpp10457 行定义.

10457 {
10459 return true;
10460 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w)->get_handle()))
10461 return noexcept(declvalue(base_t_w)->get_handle());
10462 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w).get_handle()))
10463 return noexcept(declvalue(base_t_w).get_handle());
10464 else
10465 return false;
10466 }
函数调用图:

◆ is_next_getter_noexcept()

template<typename value_t , typename base_t_w >
static constexpr bool elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::is_next_getter_noexcept ( )
inlinestaticconstexprprotectednoexcept

在文件 all_defs.cpp10508 行定义.

10508 {
10510 return true;
10511 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w)->get_next()))
10512 return noexcept(declvalue(base_t_w)->get_next());
10513 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w).get_next()))
10514 return noexcept(declvalue(base_t_w).get_next());
10515 }

◆ is_value_getter_noexcept()

template<typename value_t , typename base_t_w >
static constexpr bool elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::is_value_getter_noexcept ( )
inlinestaticconstexprprotectednoexcept

在文件 all_defs.cpp10476 行定义.

10476 {
10478 return true;
10479 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w)->get_value()))
10480 return noexcept(declvalue(base_t_w)->get_value());
10481 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w).get_value()))
10482 return noexcept(declvalue(base_t_w).get_value());
10483 }

◆ next_getter()

template<typename value_t , typename base_t_w >
base_t_w elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::next_getter ( ) const
inlineprotectednoexcept

在文件 all_defs.cpp10516 行定义.

10516 {
10518 return ((base_t_w)_m)+1;
10519 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w)->get_next()))
10520 return ((base_t_w)_m)->get_next();
10521 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w).get_next()))
10522 return ((base_t_w)_m).get_next();
10523 }

◆ operator value_t *()

template<typename value_t , typename base_t_w >
constexpr elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::operator value_t * ( )
inlineconstexprnoexcept

在文件 all_defs.cpp10555 行定义.

10555{ return operator->(); }
constexpr value_t * operator->() noexcept(is_handle_getter_noexcept())

◆ operator*()

template<typename value_t , typename base_t_w >
constexpr value_type elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::operator* ( )
inlineconstexprnoexcept

在文件 all_defs.cpp10554 行定义.

10554{ return value_getter(); }
value_type value_getter() const noexcept(is_handle_getter_noexcept())

◆ operator->()

template<typename value_t , typename base_t_w >
constexpr value_t * elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::operator-> ( )
inlineconstexprnoexcept

在文件 all_defs.cpp10553 行定义.

10553{ return handle_getter(); }
value_t * handle_getter() const noexcept(is_handle_getter_noexcept())

◆ operator<=>()

template<typename value_t , typename base_t_w >
constexpr auto elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::operator<=> ( const same_base_t< other_value_t, other_base_t_w > &  a) const
inlineconstexprnoexcept

在文件 all_defs.cpp10562 行定义.

10562 {
10563 if constexpr(compare.able<base_t_rw,other_base_t_w>)
10564 return compare(_m,a._m);
10565 }
constexpr struct elc::defs::base::compare_t compare
static constexpr bool able

◆ operator=()

template<typename value_t , typename base_t_w >
constexpr this_t & elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::operator= ( const this_t ) &
constexprdefaultnoexcept

◆ operator==() [1/3]

template<typename value_t , typename base_t_w >
constexpr bool elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::operator== ( const same_base_t< other_value_t, other_base_t_w > &  a) const
inlineconstexprnoexcept

在文件 all_defs.cpp10558 行定义.

10558 {
10559 return equal(_m,a._m);
10560 }
constexpr struct elc::defs::base::equal_t equal

◆ operator==() [2/3]

template<typename value_t , typename base_t_w >
constexpr bool elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::operator== ( const this_t a) const
inlineconstexprnoexcept

在文件 all_defs.cpp10552 行定义.

10552{ return _m == a._m; }

◆ operator==() [3/3]

template<typename value_t , typename base_t_w >
constexpr bool elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::operator== ( value_t *  a) const
inlineconstexprnoexcept

在文件 all_defs.cpp10556 行定义.

10556{ return pointer_equal(handle_getter(),a); }
constexpr auto pointer_equal(T *a, T *b) noexcept
指针比较的重载接口,允许类对此进行自定义 elc内部的指针比较应当视情况使用默认配置或此重载接口
函数调用图:

◆ swap_with()

template<typename value_t , typename base_t_w >
constexpr void elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::swap_with ( this_t a)
inlineconstexprnoexcept

在文件 all_defs.cpp10542 行定义.

10542{swap(_m,a._m);}
void swap(reverse_base_t< base_t, value_t > &a, reverse_base_t< base_t, value_t > &b) noexcept(noexcept((swap(a._m, b._m))))
函数调用图:

◆ value_getter()

template<typename value_t , typename base_t_w >
value_type elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::value_getter ( ) const
inlineprotectednoexcept

在文件 all_defs.cpp10497 行定义.

10497 {
10499 return *((base_t_w)_m);
10500 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w)->get_value()))
10501 return ((base_t_w)_m)->get_value();
10502 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w).get_value()))
10503 return ((base_t_w)_m).get_value();
10504 else
10505 return *handle_getter();
10506 }

◆ value_type_getter()

template<typename value_t , typename base_t_w >
static constexpr auto elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::value_type_getter ( )
inlinestaticconstexprprotectednoexcept

在文件 all_defs.cpp10485 行定义.

10485 {
10487 return type_info<decltype(*((base_t_w)_m))>;
10488 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w)->get_value()))
10489 return type_info<decltype(((base_t_w)_m)->get_value())>;
10490 elseif constexpr(was_not_an_ill_form(declvalue(base_t_w).get_value()))
10491 return type_info<decltype(((base_t_w)_m).get_value())>;
10492 else
10493 return type_info<decltype(*declvalue(value_t*))>;
10494 }
constexpr type_info_t< T > type_info

友元及相关函数文档

◆ same_base_t

template<typename value_t , typename base_t_w >
template<typename , typename >
friend class same_base_t
friend

在文件 all_defs.cpp10440 行定义.

类成员变量说明

◆ _m

template<typename value_t , typename base_t_w >
base_t_rw elc::defs::base::iterator_n::same_base_t< value_t, base_t_w >::_m
mutableprotected

在文件 all_defs.cpp10445 行定义.


该类的文档由以下文件生成: