YSTest: NPL::TermReference类 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

Public 成员函数 | Public 属性 | Private 属性 | 相关函数 | 所有成员列表
NPL::TermReference类 参考
Thunk Types

项引用。 更多...

`#include <NPLA.h>`

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

## Public 成员函数

template<typename _tParam , typename... _tParams>
| TermReference (TermNode &term, _tParam &&arg, _tParams &&... args) ynothrow
| 构造：使用参数指定的项并自动判断是否使用引用值初始化。 更多...
template<typename _tParam , typename... _tParams>
| TermReference (TermTags t, TermNode &term, _tParam &&arg, _tParams &&... args) ynothrow
| 构造：使用参数指定的标签及引用。 更多...
| TermReference (TermTags t, const TermReference &ref) ynothrow
| 构造：使用参数指定的标签及现有的项引用。 更多...
| TermReference (TermTags t, TermReference &&ref) ynothrow
| DefDeCopyMoveCtorAssignment (TermReference) YB_ATTR_nodiscard YB_PURE friend PDefHOp(bool
| 等于：当且仅当引用的项同一时相等。 更多...
const TermReference const TermReference &y | ImplRet (ystdex::get_equal_to<>()(x.term_ref, y.term_ref)) DefPred(const ynothrow
| 判断被引用的对象是否可通过引用被修改。 更多...
const TermReference const TermReference &y | !bool (tags &TermTags::Nonmodifying)) DefPred(const ynothrow
| 判断被引用的对象是否可通过引用值被转移。 更多...

## Public 属性

const TermReference & | x
const TermReference const TermReference &y | Modifiable
const TermReference const TermReference &y | Movable

## Private 属性

lref< TermNode > | term_ref
TermTags | tags = TermTags::Unqualified
| 引用标签。 更多...
EnvironmentReference | r_env
| 包含引用的锚对象指针的环境引用。 更多...

## 相关函数

(请注意: 这些不是成员函数.)
YB_ATTR_nodiscard YF_API pair< TermReference, bool > | Collapse (TermReference)
| 折叠项引用。 更多...

## 详细描述

项引用。

警告
  非虚析构。

自从
  build 800

表示列表项的引用的中间求值结果的项。 项引用可选地关联环境。 当关联的环境不存在时，不提供对引入的对象内存安全的检查。 为避免安全问题，不提供不关联环境的构造函数。若需不关联环境，需显式构造空环境引用。

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

## 构造及析构函数说明

## ◆ TermReference() [1/4]

template<typename _tParam , typename... _tParams>

NPL::TermReference::TermReference | ( | TermNode & | term,
|  | _tParam && | arg,
|  | _tParams &&... | args
| ) |  |

inline

构造：使用参数指定的项并自动判断是否使用引用值初始化。

自从
  build 894

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

## ◆ TermReference() [2/4]

template<typename _tParam , typename... _tParams>

NPL::TermReference::TermReference | ( | TermTags | t,
|  | TermNode & | term,
|  | _tParam && | arg,
|  | _tParams &&... | args
| ) |  |

inline

构造：使用参数指定的标签及引用。

自从
  build 894

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

## ◆ TermReference() [3/4]

NPL::TermReference::TermReference | ( | TermTags | t,
|  | const TermReference & | ref
| ) |  |

inline

构造：使用参数指定的标签及现有的项引用。

自从
  build 857

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

## ◆ TermReference() [4/4]

NPL::TermReference::TermReference | ( | TermTags | t,
|  | TermReference && | ref
| ) |  |

inline

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

## ◆ !bool()

const TermReference const TermReference& y NPL::TermReference::!bool | ( | tags &TermTags::Nonmodifying |  | ) | const

判断被引用的对象是否可通过引用值被转移。

自从
  build 857

## 成员函数说明

## ◆ DefDeCopyMoveCtorAssignment()

NPL::TermReference::DefDeCopyMoveCtorAssignment | ( | TermReference |  | ) |

等于：当且仅当引用的项同一时相等。

自从
  build 855

## ◆ ImplRet()

const TermReference const TermReference& y NPL::TermReference::ImplRet | ( | ystdex::get_equal_to<> | )(x.term_ref, y.term_ref | ) | const

判断被引用的对象是否可通过引用被修改。

自从
  build 856

## 友元及相关函数文档

## ◆ Collapse()

YB_ATTR_nodiscard YF_API pair< TermReference, bool > Collapse | ( | TermReference |  | ) |

related

折叠项引用。

参见
  TermNode::Tags

返回
  结果引用值及初始化时是否表示引用值。

自从
  build 857

若被参数引用值引用的对象是否是一个引用值，结果为合并标签后的被后者引用的对象和 true ； 否则，返回自身和 false 。 引用值可包含的非正规表示不被处理，调用时应注意维护子项生存期。

在文件 NPLA.cpp 第 614 行定义.

## 类成员变量说明

## ◆ Modifiable

const TermReference const TermReference& y NPL::TermReference::Modifiable

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

## ◆ Movable

const TermReference const TermReference& y NPL::TermReference::Movable

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

## ◆ r_env

EnvironmentReference NPL::TermReference::r_env

private

包含引用的锚对象指针的环境引用。

自从
  build 869

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

## ◆ tags

TermTags NPL::TermReference::tags = TermTags::Unqualified

private

引用标签。

自从
  build 857

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

## ◆ term_ref

lref<TermNode> NPL::TermReference::term_ref

private

自从
  build 842

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

## ◆ x

const TermReference& NPL::TermReference::x

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

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

- NPLA.h