YSTest: NPL::EnvironmentReference类 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

Public 成员函数 | Public 属性 | Private 属性 | 所有成员列表
NPL::EnvironmentReference类 参考

环境引用计数检查支持。 更多...

`#include <NPLA.h>`

类 NPL::EnvironmentReference 继承关系图:
[图例]
NPL::EnvironmentReference 的协作图:
[图例]

## Public 成员函数

| DefDeCtor (EnvironmentReference) EnvironmentReference(const shared_ptr< Environment > &) ynothrow
| 构造：使用指定的环境指针和此环境的锚对象指针。 更多...
template<typename _tParam1 , typename _tParam2 >
| EnvironmentReference (_tParam1 &&arg1, _tParam2 &&arg2) ynothrow
| 构造：使用指定的环境指针和锚对象指针。 更多...
| DefDeCopyMoveCtorAssignment (EnvironmentReference) YB_ATTR_nodiscard YB_PURE friend PDefHOp(bool
const EnvironmentReference const EnvironmentReference &y ynothrow | ImplRet (x.p_weak.lock()==y.p_weak.lock()) DefGetter(const ynothrow
const EnvironmentReference const EnvironmentReference &y ynothrow const AnchorPtr p_anchor | DefGetter (const ynothrow, const weak_ptr< Environment > &, Ptr, p_weak) PDefH(shared_ptr< Environment >

## Public 属性

const EnvironmentReference & | x
const EnvironmentReference const EnvironmentReference &y ynothrow const AnchorPtr | AnchorPtr
const EnvironmentReference const EnvironmentReference &y ynothrow const AnchorPtr p_anchor | Lock

## Private 属性

weak_ptr< Environment > | p_weak {}
AnchorPtr | p_anchor {}
| 引用的锚对象指针。 更多...

## 详细描述

环境引用计数检查支持。

注解
  因对性能有影响，默认仅调试配置下启用。

参见
  EnvironmentReference
  Environment
  YTraceDe

自从
  build 856

若定义为 true ，则在 Environment 和 EnvironmentReference 启用引用计数检查支持。 检查在 Environment 的析构函数进行，通过对锚对象剩余引用计数的来源计数判断正常状态。 若引用计数来源都是 Environment 、 EnvironmentReference 或 TermReference ， 则表示正常；否则，使用 YTraceDe 输出错误消息。 注意绑定析构顺序不确定，可能导致依赖不确定而误报。 因对性能有影响，默认仅调试配置下启用。

参见
  InvalidReference

自从
  build 876

父环境访问检查支持。

参见
  Environment

若定义为 true ，则在默认解析父环境时，检查环境引用是否存在。

项引用间接访问检查支持。

参见
  TermReference

若定义为 true ，则在访问 TermReference 的值时，检查环境引用是否存在。

环境引用。

参见
  NPL_NPLA_CheckEnvironmentReferenceCount

自从
  build 823

可能共享所有权环境的弱引用。

在文件 NPLA.h 第 984 行定义.

## 构造及析构函数说明

## ◆ EnvironmentReference()

template<typename _tParam1 , typename _tParam2 >

NPL::EnvironmentReference::EnvironmentReference | ( | _tParam1 && | arg1,
|  | _tParam2 && | arg2
| ) |  |

inline

构造：使用指定的环境指针和锚对象指针。

前置条件
  第二参数表示由环境提供的锚对象指针。

在文件 NPLA.h 第 1007 行定义.

## 成员函数说明

## ◆ DefDeCopyMoveCtorAssignment()

NPL::EnvironmentReference::DefDeCopyMoveCtorAssignment | ( | EnvironmentReference |  | ) |

自从
  build 824

## ◆ DefDeCtor()

NPL::EnvironmentReference::DefDeCtor | ( | EnvironmentReference |  | ) | const &

构造：使用指定的环境指针和此环境的锚对象指针。

自从
  build 869
  build 894

## ◆ DefGetter()

const EnvironmentReference const EnvironmentReference& y ynothrow const AnchorPtr p_anchor NPL::EnvironmentReference::DefGetter | ( | const | ynothrow,
|  | const weak_ptr< Environment > & | ,
|  | Ptr | ,
|  | p_weak |
| ) |  |

## ◆ ImplRet()

const EnvironmentReference const EnvironmentReference& y ynothrow NPL::EnvironmentReference::ImplRet | ( | x.p_weak. | lock() = `= y.p_weak.lock()` | ) | const

自从
  build 847

## 类成员变量说明

## ◆ AnchorPtr

const EnvironmentReference const EnvironmentReference& y ynothrow const AnchorPtr NPL::EnvironmentReference::AnchorPtr

在文件 NPLA.h 第 1040 行定义.

## ◆ Lock

const EnvironmentReference const EnvironmentReference& y ynothrow const AnchorPtr p_anchor NPL::EnvironmentReference::Lock

在文件 NPLA.h 第 1043 行定义.

被这些函数引用 NPL::ContextNode::DefaultResolve().

## ◆ p_anchor

AnchorPtr NPL::EnvironmentReference::p_anchor {}

private

引用的锚对象指针。

自从
  build 847

在文件 NPLA.h 第 993 行定义.

## ◆ p_weak

weak_ptr<Environment> NPL::EnvironmentReference::p_weak {}

private

在文件 NPLA.h 第 988 行定义.

## ◆ x

const EnvironmentReference& NPL::EnvironmentReference::x

在文件 NPLA.h 第 1036 行定义.

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

- NPLA.h