| RMVL 2.4.0 Robotic Manipulation and Vision Library

载入中...
搜索中...
未找到
函数
聚合体编译期反射
RMVL 核心模块

提供了 C++17 和 C++20 两种实现的聚合体编译期反射功能 更多...

聚合体编译期反射 的协作图:

## 函数
template<typename Tp>
consteval std::size_t | rm::reflect::size (auto &&...args)
| 获取指定类型的成员个数
template<typename Tp, typename Callable>
void | rm::reflect::for_each (Tp &&val, Callable &&f)
| 遍历聚合类的每一个数据成员
template<typename Tp>
bool | rm::reflect::equal (const Tp &lhs, const Tp &rhs)
| 判断两个聚合类数据是否相同

## 详细描述

提供了 C++17 和 C++20 两种实现的聚合体编译期反射功能

- 该模块提供了对聚合体的编译期反射功能，使得用户可以在编译期获取聚合体的成员信息
- 该模块的内容定义在 rm::reflect 命名空间中，提供了 rm::reflect::size 和 rm::reflect::for_each 两个主要的函数模板

## 函数说明

## ◆ equal()

template<typename Tp>

bool rm::reflect::equal | ( | const Tp & | lhs,
|  | const Tp & | rhs )
| inline

`#include <rmvl/core/util.hpp>`

判断两个聚合类数据是否相同

注解
  成员个数不要超过 12

模板参数

  Tp | 聚合类类型

参数

  [in] | lhs | 左操作数
  [in] | rhs | 右操作数

函数调用图:

## ◆ for_each()

template<typename Tp, typename Callable>

void rm::reflect::for_each | ( | Tp && | val,
|  | Callable && | f )
| inline

`#include <rmvl/core/util.hpp>`

遍历聚合类的每一个数据成员

注解
  成员个数不要超过 12

模板参数

  Tp | 聚合类类型
  Callable | 可调用对象类型

参数

  [in] | val | 聚合类对象
  [in] | f | 可调用对象

函数调用图:

## ◆ size()

template<typename Tp>

std::size_t rm::reflect::size | ( | auto &&... | args | ) |
| consteval

`#include <rmvl/core/util.hpp>`

获取指定类型的成员个数

注解
  成员个数不要超过 12

模板参数

  Tp | 聚合类类型

返回
  成员个数

函数调用图: