Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C+中具有_类型-模板元编程的_成员_+; 我怀疑在目前的C++标准下这是不可能的,但无论如何我会问。_C++_Metaprogramming - Fatal编程技术网

在C+中具有_类型-模板元编程的_成员_+; 我怀疑在目前的C++标准下这是不可能的,但无论如何我会问。

在C+中具有_类型-模板元编程的_成员_+; 我怀疑在目前的C++标准下这是不可能的,但无论如何我会问。,c++,metaprogramming,C++,Metaprogramming,我试图实现的是让编译器在编译时弄清楚一个类是否包含Base类型的任何成员变量(及其派生) e、 g 我想要一些类似的东西 has_member_of_type<Base, Foo>::value 具有类型为::value的\u成员\u 在这种情况下为true(一个或多个成员变量的基类型为base),而其他任何类型(包括基本类型)都将求值为false e、 g 具有类型为::value=false的\u成员\u 具有类型为::value=false的\u成员\u 请注意,如果用户

我试图实现的是让编译器在编译时弄清楚一个类是否包含Base类型的任何成员变量(及其派生)

e、 g

我想要一些类似的东西

has_member_of_type<Base, Foo>::value
具有类型为::value的\u成员\u
在这种情况下为true(一个或多个成员变量的基类型为base),而其他任何类型(包括基本类型)都将求值为false

e、 g

具有类型为::value=false的\u成员\u
具有类型为::value=false的\u成员\u

请注意,如果用户类具有特定类型的成员变量,我正试图使用库中的has_member_of_type来检测和使用不同的代码分支。

不,这是不可能的。你甚至不能访问成员(除非告诉他们名字),更不用说探测他们的类型了

has_member_of_type<Base, Foo>::value
has_member_of_type<Base, char>::value = false
has_member_of_type<Base, Bar>::value = false