YSTest: deref_op.hpp 文件参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

命名空间 | 宏定义 | 函数
deref_op.hpp 文件参考
YBaseLib » YStandardExtend

解引用操作。 更多...

`#include "meta.hpp"`
`#include "cassert.h"`
deref_op.hpp 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

## 命名空间

| ystdex
| `<memory>` 特性测试宏。

## 宏定义

#define | YB_VerifyIterator(_expr) yverify(!is_undereferenceable(_expr))
| 验证表达式求值的迭代器的有效性。 更多...

## 函数

template<typename _tIter >
bool | ystdex::is_undereferenceable (const _tIter &)
template<typename _type >
bool | ystdex::is_undereferenceable (_type *p)
template<typename _type >
auto | ystdex::nonnull_or (_type &&p) -> decay_t< decltype(std::forward< decltype(p)>(p))>
| 取非空引用或默认值。 更多...
template<typename _tOther , typename _type >
auto | ystdex::nonnull_or (_type &&p, _tOther &&other) -> decltype(p ? std::forward< decltype(p)>(p) :std::forward< decltype(other)>(other))
template<typename _tOther , typename _type , typename _tSentinal = nullptr_t>
auto | ystdex::nonnull_or (_type &&p, _tOther &&other, _tSentinal &&last) -> decltype(!bool(p==std::forward< decltype(last)>(last)) ? std::forward< decltype(p)>(p) :std::forward< decltype(other)>(other))
template<typename _type , typename _func >
auto | ystdex::call_nonnull_or (_func f, _type &&p) -> decay_t< decltype(f(std::forward< decltype(p)>(p)))>
| 调用非引用或默认值。 更多...
template<typename _tOther , typename _type , typename _func >
auto | ystdex::call_nonnull_or (_func f, _type &&p, _tOther &&other) -> decltype(p ? f(std::forward< decltype(p)>(p)) :std::forward< decltype(other)>(other))
template<typename _tOther , typename _type , typename _func , typename _tSentinal = nullptr_t>
auto | ystdex::call_nonnull_or (_func f, _type &&p, _tOther &&other, _tSentinal &&last) -> decltype(!bool(p==std::forward< decltype(last)>(last)) ? f(std::forward< decltype(p)>(p)) :std::forward< decltype(other)>(other))
template<typename _type >
auto | ystdex::value_or (_type &&p) -> decay_t< decltype(*std::forward< decltype(p)>(p))>
| 取非空值或默认值。 更多...
template<typename _tOther , typename _type >
auto | ystdex::value_or (_type &&p, _tOther &&other) -> decltype(p ? *std::forward< decltype(p)>(p) :std::forward< decltype(other)>(other))
template<typename _tOther , typename _type , typename _tSentinal = nullptr_t>
auto | ystdex::value_or (_type &&p, _tOther &&other, _tSentinal &&last) -> decltype(!bool(p==std::forward< decltype(last)>(last)) ? *std::forward< decltype(p)>(p) :std::forward< decltype(other)>(other))
template<typename _type , typename _func >
auto | ystdex::call_value_or (_func f, _type &&p) -> decay_t< decltype(f(*std::forward< decltype(p)>(p)))>
| 调用非空值或取默认值。 更多...
template<typename _tOther , typename _type , typename _func >
auto | ystdex::call_value_or (_func f, _type &&p, _tOther &&other) -> decltype(p ? f(*std::forward< decltype(p)>(p)) :std::forward< decltype(other)>(other))
template<typename _tOther , typename _type , typename _func , typename _tSentinal = nullptr_t>
auto | ystdex::call_value_or (_func f, _type &&p, _tOther &&other, _tSentinal &&last) -> decltype(!bool(p==std::forward< decltype(last)>(last)) ? f(*std::forward< decltype(p)>(p)) :std::forward< decltype(other)>(other))

## 详细描述

解引用操作。

版本
  r261

作者
  FrankHB frank.nosp@m.hb19.nosp@m.89@gm.nosp@m.ail..nosp@m.com

自从
  build 576

创建时间:
  2015-02-10 13:12:26 +0800

修改时间:
  2019-08-06 22:05 +0800

文本编码:
  UTF-8

模块名称:
  YStandardEx::DereferenceOperation

在文件 deref_op.hpp 中定义.

## 宏定义说明

## ◆ YB_VerifyIterator

#define YB_VerifyIterator | ( |  | _expr | ) | yverify(!is_undereferenceable(_expr))

验证表达式求值的迭代器的有效性。

注解
  同 yverify ，一定条件下可忽略验证。
  验证条件使用 ADL is_undereferenceable 。

参见
  is_undefeferenceable
  yverify

自从
  build 864

在文件 deref_op.hpp 第 68 行定义.