c++ - 我可以在 C++17 中使用 std::any 作为指向成员变量的指针吗?
问题描述
我正在使用 std::any https://en.cppreference.com/w/cpp/utility/any学习。我想知道我是否可以用它来访问数据成员或类的函数成员。我有一个结构:
struct test
{
int a;
double b;
}
然后我想要一个可以 test::a 或 test::b 的通用类型。
std::any ptr;
ptr = &test::a;
现在ptr
是指向a
类成员的指针test
。如果我创建一个新的 class 对象test
。我不知道为a
这个对象的成员设置一个新值。我尝试了类似以下的方法,但在编译器中失败了。
test t;
std::any ptr;
ptr = &test::a;
// set a value for member a of object t using ptr ??
t.*(std::any_cast<test::*>(ptr)) = 1;
解决方案
推荐阅读
- angular-ng-if - 尝试使用 ngIf 指令显示图像的问题
- reactjs - 如何在 Reactjs 中动态获取数据
- reactjs - SameSite Cookies Safari 浏览器 14.1 没有问题
- java - 带有异步 Dynamo 客户端的 Spring Boot。有优势吗?
- angular - 角度单元测试 - 对象数组的比较仍然失败 toEqual
- api - 使用 API 从 url 获取 Gitlab 项目 id
- next.js - NextJS 标头 - 内容丰富的数据
- c# - 当有多个层次结构时定义自动映射器配置文件
- angular - BlazePose TFJS 姿势检测中的估计姿势没有返回姿势
- powershell - 如果系统脱机,如何将数据添加到 PowerShell 报告