Bean(TM) Nuts Pinecone for C/CPP
Aton家族

摘要

Aton家族包括Aton、Dictionary(任意数据类型字典)、Liston(任意数据类型List),类似Boost any,为一组类似JSON容器的万能任意数据类型容器,支持任意C++数据类型等(采用C++模板特性、SFINAE、RTTI、装饰器模式实现的类似Java Object的包装[类似Java包装类型]),支持运算符重载,支持类似JS、PHP、Python的部分动态运算,支持嵌套,支持引用类型,完美支持JSON5,是Boost any 的Super plus版本。

Aton is devised like Java-Object to support any element, class, union, pointer,object, function etc !
This element is universal unit it can contain any element just like boost::any !
Aton is based on C++ RTTI mechanism, It is rely on C++ ‘s STL !
Warning ! Don’t abuse this function ! It will slow down your program’s running speed !
!!! For CPP , Aton and atom realized weak type programming successfully. For Aton , it using
virtual function to realize this mechanism just like Java’s Object but more automatic !!!

Aton的设计就像Java Object一样,支持任何元素、类、并集、指针、对象、函数等!
这个元素是通用单元,它可以包含任何元素,就像boost::any!
Aton是基于C++RTTI机制的,它依赖于C++的STL!
警告不要滥用这个功能!它会降低程序的运行速度!
!!!对于CPP,Aton和Atom成功地实现了弱类型编程。对于Aton,它使用虚拟函数实现这个机制就像Java的Object一样,但更自动化!!!

预览

类定义

Aton由三个必要对象组成、Objective、Objectum、Aton;

Objective是一个顶级接口,定义了必要的虚函数,如toString, toInt64等;

Objectum是Objective的默认实现,基于SFINAE技术自动对目标对象就行装饰和包装;

SFINAE自动匹配模板接口

Aton是对外的最终封装对象,使用std::unique_ptr 智能指针进行内存管理,Aton不允许包装类型的二次引用(独占)。

使用

递归嵌套

类似JS的匿名函数、面向Map编程

支持匿名函数

支持普通函数

支持任意类型和嵌套

JSON5支持

Author:undefined  Create time:2023-07-29 16:01
Last editor:undefined  Update time:2023-07-29 19:55