我正在与std :: any学习 https://en.cppreference.com/w/cpp/utility/any。 我想知道是否可以将其用于访问类的数据成员或functino成员。 我有一个结构:
struct test
{
int a;
double b;
}
然后我想要一个可以测试:: a或测试:: b的通用类型。
std::any ptr;
ptr = &test::a;
现在ptr
是指向类a
的成员test
的指针。并且如果我创建类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;
答案 0 :(得分:3)