/**
* @file		DNDBrief.h
* @brief	说明
*
*
* @version	1.1
* @author	lveyou
* @date		21-08-08
*/

/**
* @brief 为什么使用标准库？
* 为开源世界和C++标准做贡献，所以使用标准库。
*/

/**
* @brief 为什么不使用C++20模块
* 我尝试过模块，但编译期支持始终不完善，之好延后
*/

/**
* @brief 各系统的全局变量接口使用指针，以便控制生命周期，且不占用全局空间
*/

/**
* @brief	命名风格
* ?? 全局函数使用小写加下划线命名，例如 calc_n
* ?? 非泛用型的全局函数只开头小写，例如 createQuad
* 除了dl命令空间的全局函数都大写开头，例如Math::SetSeed
* 宏由于没有命令空间，所以必须dl开头防止冲突
* 不需要别处的资源的初始化叫init，而使用别处资源的初始化叫load
* 缩写只有首字母大写（命名空间除外）
* Add的含义是添加一个已有对象，而不是创建
* 除了dl命名空间，其他都首字母大小，例如dnd::Math，缩写除外比如dnd::UI
* 优先使用枚举类，如果只使用枚举，则使用Struct包含，枚举统一取名为Var（参见LogicType的实现）
* 冒号（:）作为特殊对象的命令，例如默认精灵、默认音效
* 对于多个元素，不使用单复数，而是加mul修饰。例如 _mulSpr，它可以是数组，也可以是链表。
* 加减乘除如下：Addition(add)、Subtraction(sub)、multiplication(mul)、division(div)
* 求和、求积：sum、??
* func为回调函数，fn为局部lambda函数
* small <-> large
*/

/**
* @brief	对象创建与释放
* 特殊物件通过g_factory创建
* 用户层面，一般情况不出现new关键字
* 资源名称：由于/不能作为文件名，故使用.替换/。
*/

/**
* @brief	关于绘制顺序
* 用order表示绘制遮挡顺序，越小则越靠近屏幕
* 对于UI来说，传入x，则所有子元素的order均大于等于x。
* 越先添加到Panel的Group，order越大（详细参见Panel::SetOrder）。
*/

/**
* @brief	常用成员函数命名
* Refresh代表刷新、Set代表设置。前者含义带有不保存数据。
* Update为时间片逻辑、Render代表绘制、Run代表前二者合一（一般不使用Run）。
* Init代表初始化、Load代表加载、Create代表创建，一般用于静态函数创建对象。
* Reset代表重置、Delete代表删除、Clear代表清除、Release代表释放（Delete更表示不可逆的）、Click用于按钮按下）。
* Clone代表复制，Copy代表复制。前者为新建元素，后者为已有元素复制另外一个元素属性。
* GetBuffer返回byte流，GetData返回实际类型指针。
* 
*/

/**
* @brief	越界时IsOutRange返回真，CheckRange返回假。
*/

/**
* @brief	类成员顺序
* 1.嵌套类
* 2.构造函数
* 3.操作符重载
* 4.主要函数
* 5.Set函数
* 5.Get函数
* 6.功能性函数
* 7.析构函数
* 8.私有成员
* 9.私有函数
*/

/**
* @brief	右值引用
* 右值引用一般用于移动语义，默认不使用移动语义，性能瓶颈再作优化，所以“const T&& a”没有实用意义。
*/

/**
* @brief	关于文件
* 优先使用fstream，由于大部分库都是用C语言的FILE文件句柄，故作兼容。
* 接口统一使用UTF-8编码，代码内容与代码文件皆使用utf8
*/

/**
* @brief	C++标签
* deprecated	废弃接口
*/


/**
* @brief	应该优先使用以下基础类型
* int、unsigned、float
* 字节流使用std::byte
*/

/**
* @brief	复制dll命令
* xcopy / r / y $(SolutionDir)$(PlatformName)\$(Configuration)\DND3D.dll $(SolutionDir)bin\$(Configuration)
*/


/*
MS-DOS-style lines that end with (CR/LF) characters (optional for the last line)
Jiger: {使用回车换行（两个字符）作为行分隔符，最后一行数据可以没有这两个字符。}
An optional header record (there is no sure way to detect whether it is present, so care is required when importing).
Jiger:{标题行是否需要，要双方显示约定}.
Each record "should" contain the same number of comma-separated fields.
Jiger:{每行记录的字段数要相同，使用逗号分隔。} 逗号是默认使用的值，双方可以约定别的。
Any field may be quoted (with double quotes).
Jiger:{任何字段的值都可以使用双引号括起来}. 为简单期间，可以要求都使用双引号。
Fields containing a line-break, double-quote, and/or commas should be quoted. (If they are not, the file will likely be impossible to process correctly).
Jiger:{字段值中如果有换行符，双引号，逗号的，必须要使用双引号括起来。这是必须的。}
A (double) quote character in a field must be represented by two (double) quote characters.
Jiger:{如果值中有双引号，使用一对双引号来表示原来的一个双引号}
*/

/**
* @brief	基础定义与算法分类
* dl_type.h			类型定义、类型转换
* dl_algorithm.h	与类型无关的算法，操作容器的算法
* dl_math.h			数学相关、需要输出日志
*/

/**
* @brief	 注释示例
*
* @detail	详细说明-------------------------------------aa
*
* @note		 注释
* @attention 注意
* @warning	 警告
* @exception 异常
* @remarks	 备注说明
*
* @return 返回值
* @retval 返回值的说明
*
* @bug 有bug
* @todo 还没做完呢
* @see 参考一下
* @pre 前置条件
* @deprecated 过时了
*/
int this_is_doxygen_test() {}


/**
* @example 例子
*/



/*! \mainpage dl库
 *
 * \section intro_sec 介绍
 *
 * 基于C++20、vulkan的工具库。
 * by略游 更新于2024-12-23
 *
 * 链接：https://gitee.com/lveyou/dl
 *
 * @image html framework.png "架构图"
 */
