有一个关于静态反射的 C++ 技术规范(当前PDF 草案和cppreference 页面)可能会进入 C++23 或更高版本。
在当前草案中(我理解语法可能还没有固定)是否有可能通过名称访问结构字段/调用类成员函数?
例如
struct Test {
int x;
int y;
};
Test foo;
auto meta = reflexpr(foo); // access meta information about class
some_magic_setter<"x", meta>(foo, 5); // ??? Should do: `foo.x = 5`
这可能吗?如果是的话,怎么办?
编辑:当我查看 TS草案时,我发现大多数函数都被命名为 'get_XX' (like get_type
, get_scope
, ...) 或 'is_XXX' (like is_private
, ...) 这似乎只提供信息(这显然是反思的目的)。但是,我找不到任何似乎允许成员访问给定对象的东西。欢迎任何提示。