2017年2月28日

关于内存对齐

摘要: 事情的起因是这样的,我想在GNova写一个标识日期时间的类GDateTime,存储以下数据: 年份、月份、日期、星期、一年中的第几天、时、分钟、秒、毫秒。 并且可以针对以上数据进行操作。出于节省数据空间的考虑,每一项数据都尽量用最小容量的数据类型,比如年份使用guint16来存储,月份使用guint 阅读全文

posted @ 2017-02-28 11:02 乱世浮生 阅读(144) 评论(0) 推荐(0)

2017年2月16日

关于萃取器

摘要: 萃取器的作用是在编译期间获取到类型信息的一系列方法,在GNova中萃取器位于头文件gtraits.h中,其中提供的类和函数类似于STL头文件<type_traits>中名称相近的类和函数。一些常用的类和函数包括: 判断两个类型是否一致: 若一致,则其Value字段为true,否则为false。 阅读全文

posted @ 2017-02-16 14:20 乱世浮生 阅读(101) 评论(0) 推荐(0)

关于空间分配器和对象构造器

摘要: 在C++使用new去创建一个对象,其实应该分为两个步骤,第一步是申请空间,第二步是构造对象。同样,使用delete去销毁一个对象,也应分为两步:析构对象,释放空间。在GNova中,为了灵活操作,将这两个步骤分开处理,分别命名为空间分配器和对象构造器。 内存处理函数 在C中可以使用malloc和fre 阅读全文

posted @ 2017-02-16 14:11 乱世浮生 阅读(191) 评论(0) 推荐(0)

2017年2月6日

我为什么要造一个轮子——GNova开发小计

摘要: GNova最初叫做CSystem,是作为系统库来设计的。 我最初学习C++是在大学时期的专业课,学生时代也曾用C++写过一些算法,但项目和比赛一般是用C#和Java完成的。工作之后,由于项目需要,我们的业务平台需要使用C++进行编写。在当时,我总是认为C++的标准库SL不如Java的lang包和.N 阅读全文

posted @ 2017-02-06 18:56 乱世浮生 阅读(285) 评论(0) 推荐(0)

导航