Pat*_*ykB 1 c++ macros templates c++17
我有一个黑匣子类,如:
class foo
{/* body is unavailable for me to inspect */};
Run Code Online (Sandbox Code Playgroud)
foo 可以是模板。
此类是终极黑匣子;
-我对它的成员一无所知
-我对它的方法一无所知
-等等。
我正在尝试实现一个class_traits类:
template <typename T>
class class_traits
{
// impl
}
Run Code Online (Sandbox Code Playgroud)
这将允许我执行以下操作(或至少执行类似操作)
int main()
{
cout << class_traits<foo>::member_count << endl;
cout << typeid(class_traits<foo>::member<0>::type).name() << endl;
cout << typeid(class_traits<foo>::member<1>::type).name() << endl;
cout << typeid(class_traits<foo>::member<2>::type).name() << endl;
return 0;
};
Run Code Online (Sandbox Code Playgroud)
可以那样做吗?如果是这样,怎么办?
我仅限于c++17。
我完全可以使用宏和其他“ hacky”解决方案(如果可能的话,我希望将其保留在编译时而不是运行时)。
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |