做视频大赛推广的网站,如何维护自己公司网站,网站制作文章标签,广州门户网站建设方案问题主 和 vczh 可以看下我这样弄#xff0c;是否符合要求#xff1f;定义类的时候稍微傻一点#xff0c;但是他既不要求pod#xff0c; 也没有什么侵入式的基类要求。甚至还允许你把成员定义成private的。连C11都不需要。struct test_type0{DEF_FIELD_BEGIN(test_type0)pr…问题主 和 vczh 可以看下我这样弄是否符合要求定义类的时候稍微傻一点但是他既不要求pod 也没有什么侵入式的基类要求。甚至还允许你把成员定义成private的。连C11都不需要。struct test_type0{DEF_FIELD_BEGIN(test_type0)private:DEF_FIELD(int, x)public:DEF_FIELD(std::string, y)DEF_FIELD_END};struct test_type1{DEF_FIELD_BEGIN(test_type1)DEF_FIELD(test_type0, z)DEF_FIELD(std::string, w)DEF_FIELD_END};然后就可以用functor去遍历这些类实例的成员了。目前支持仅传成员传成员成员的名字传成员成员的名字成员的深度(这样就可以把结构体转换成json或者xml了)3种参数类型的functor。例子里头有详细的介绍。容器类型怎么办。。肯定在你functor里面自己遍历啦容器自己都是支持遍历的嘛好傻的问题咯。核心技术其实就是如何给成员计数如何把成员转换成整数吧。用了一个过去boost::typeof的技巧。为了你这个问题我牺牲了午睡给你写了个github项目(其实主要是把我另外一个项目里面的部分功能给抽离了出来yuanzhubi/raw_buffer)问题主你看是否该给我点个赞完全不需要什么CLR来支持。除了没法支持遍历父类的数据成员之外应该是足够了。你看下测试用例 是否已经覆盖够了你的要求。目前就支持深度优先遍历。通过gcc4.5 vs2008测试。 header only, C03 only。 性能和你手写遍历成员是一模一样的。