这回基本看懂了,完全可以实现struct_to_JSON(任意struct);这类功能了,但是要放在.hpp里,每次具象化的编译各种struct。不能放到.a,.so里,封装你的算法。
至于能不能做ORM,还要思考一下。
泛型编程可以,柔性编程再弄弄吧。柔性编程是泛型编程的一种,只不过“型”,在编译期不知道,得在运行期得到。意义在于,在开发过程中会修改数据结构,柔性的意义在于,数据结构的变化,程序不修改或很少修改,提供一定程度的算法与数据的独立性。
泛型编程是这样的:str_to_JSON(JSON,any_struct);
柔性编程是这样的:str_to_JSON(JSON,any_struct,template);
你们研究一下,静态反射能不能产生template,交给库函数,让它处理它所不知道的struct。
这个:mk_Template(any_struct,&template)
做ORM的方法,用template生成SQL语句,并绑定变量(相当于序列化),或解析结果集(相当于反序列化)。
如果能利用数据库的表结构自动生成template,就实现了完全的柔性编程,数据结构经常改,程序自适应。又长又多的列名就不要反复的写啦!一般都数据库编程,就是列名拉清单,一遍又一遍。
这个是思路,具体工作,交给AI。AI可以做一切,但思路只能人给。
【 在 poocp 的大作中提到: 】
: 虽然还没完全实现,但已经基本可用,环境Win11 MSYS2 UCRT63+1 g++ v16.1.0
: print_fields函数可接收各种不同结构体对象做参数,能在编译时确定的就行。
: [upload=1][/upload]
--
修改:ylh1969 FROM 221.221.54.*
FROM 221.221.54.*