ELC in dev
ELC-lang
载入中...
搜索中...
未找到
elc::defs::memory::gc_n::gc_t类 参考

Public 成员函数

void operator() () const noexcept
 
bool success () const noexcept
 
void add_gc_method (gc_method_t a) noexcept
 
void remove_gc_method (gc_method_t a)
 
void add_gc_success_identifier (success_identifier_t a) noexcept
 
void remove_gc_success_identifier (success_identifier_t a)
 
template<class T >
void add_gc_method (type_info_t< T >) noexcept
 
template<class T >
void remove_gc_method (type_info_t< T >) noexcept
 

详细描述

在文件 all_defs.cpp26318 行定义.

成员函数说明

◆ add_gc_method() [1/2]

void elc::defs::memory::gc_n::gc_t::add_gc_method ( gc_method_t  a)
inlinenoexcept

在文件 all_defs.cpp26347 行定义.

26347 {
26348 _gc_methods.add(a);
26349 }
constexpr T down_cast(U a) noexcept
向下转型至

◆ add_gc_method() [2/2]

template<class T >
void elc::defs::memory::gc_n::gc_t::add_gc_method ( type_info_t< T >  )
inlinenoexcept

在文件 all_defs.cpp26362 行定义.

26362 {
26363 add_gc_method((void(*)()noexcept)gc_method_of<T>);
26365 }
void add_gc_method(gc_method_t a) noexcept
void add_gc_success_identifier(success_identifier_t a) noexcept

◆ add_gc_success_identifier()

void elc::defs::memory::gc_n::gc_t::add_gc_success_identifier ( success_identifier_t  a)
inlinenoexcept

在文件 all_defs.cpp26354 行定义.

26354 {
26355 _gc_success_identifiers.add(a);
26356 }

◆ operator()()

void elc::defs::memory::gc_n::gc_t::operator() ( ) const
inlinenoexcept

在文件 all_defs.cpp26327 行定义.

26327 {
26328 if(_gc_running)
26330 _gc_running.set();
26331 if(_gc_methods.empty())
26333 _gc_methods.for_each(invoke<const gc_method_t>._as(nothing));
26334 _gc_running.unset();
26335 }
#define nothing
Definition all_defs.cpp:647
void set() noexcept
void unset() noexcept
void die_with(string_view err_msg) noexcept
同 die() ,但是有详细的错误信息
constexpr auto empty_gc_method
函数调用图:

◆ remove_gc_method() [1/2]

void elc::defs::memory::gc_n::gc_t::remove_gc_method ( gc_method_t  a)
inline

在文件 all_defs.cpp26350 行定义.

26350 {
26351 _gc_methods.remove(a);
26352 }

◆ remove_gc_method() [2/2]

template<class T >
void elc::defs::memory::gc_n::gc_t::remove_gc_method ( type_info_t< T >  )
inlinenoexcept

在文件 all_defs.cpp26367 行定义.

26367 {
26370 }
void remove_gc_success_identifier(success_identifier_t a)
void remove_gc_method(gc_method_t a)

◆ remove_gc_success_identifier()

void elc::defs::memory::gc_n::gc_t::remove_gc_success_identifier ( success_identifier_t  a)
inline

在文件 all_defs.cpp26357 行定义.

26357 {
26358 _gc_success_identifiers.remove(a);
26359 }

◆ success()

bool elc::defs::memory::gc_n::gc_t::success ( ) const
inlinenoexcept

在文件 all_defs.cpp26336 行定义.

26336 {
26337 bool success=_gc_success_identifiers.empty();
26338 _gc_success_identifiers.for_each(
26339 λ_with_catch(&success)(const success_identifier_t&a)noexcept{
26340 if(not success)
26341 success=a();
26342 }
26343 );
26344 return success;
26345 }
#define λ_with_catch(...)
Definition all_defs.cpp:627
bool success() const noexcept

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