C++ 检索类内初始化成员的默认值

C++ 检索类内初始化成员的默认值,c++,c++11,in-class-initialization,C++,C++11,In Class Initialization,是否有任何方法可以直接检索使用类内初始化定义的成员的默认值?例如: struct Test { int someValue = 5; }; int main(int argc,char *argv[]) { auto val = declvalue(Test::someValue); // Something like this; Should return 5 std::cout<<val<<std::endl; for(;;);

是否有任何方法可以直接检索使用类内初始化定义的成员的默认值?例如:

struct Test
{
    int someValue = 5;
};

int main(int argc,char *argv[])
{
    auto val = declvalue(Test::someValue); // Something like this; Should return 5
    std::cout<<val<<std::endl;
    for(;;);
    return 0;
}
struct测试
{
int-someValue=5;
};
int main(int argc,char*argv[])
{
auto val=declvalue(Test::someValue);//类似这样的内容;应返回5

std::cout如果您的类型是默认可构造的,那么您可以编写自己的
declvalue

template<typename T, typename C>
constexpr T declvalue(T C::* ptr)
{
    return C{}.*ptr;
}
模板
constexpr T declvalue(tc::*ptr)
{
返回C{}.*ptr;
}
其用途如下:

int main() {
    cout << declvalue(&Test::someValue) << endl;
}
intmain(){

cout
auto val=Test{}.someValue;