[英]Could I use std::any with C++17 for pointer to member variable?
I'm studying with std::any https://en.cppreference.com/w/cpp/utility/any . 我正在学习std :: any https://en.cppreference.com/w/cpp/utility/any 。 I'm wondering if I can use it for accessing data members or functino member of class. 我想知道我是否可以使用它来访问数据成员或类的functino成员。 I have a struct: 我有一个结构:
struct test
{
int a;
double b;
}
Then I want a general type that can either test::a or test::b. 然后我想要一个可以测试:: a或test :: b的通用类型。
std::any ptr;
ptr = &test::a;
Now ptr
is a pointer to a member a
of class test
. 现在ptr
是一个指向构件a
类的test
。 And if I create a new object of class test
. 如果我创建一个新的类test
对象。 I don't know to set a new value of member a
of this object. 我不知道设置此对象的成员a
的新值。 I tried something like following but it is fail at compiler. 我尝试了类似下面的内容,但它在编译器中失败了。
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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.