Skip to content

HLYTQ/json

Repository files navigation

简介

  • 值得一提的使用到的现代C++特性

    1. C++11 的移动语义
    2. C++14 标准下的智能指针
  • 执行 ./start.sh即可简单运行程序的一个样例

  • debug.sh是在终端启用 gdb调试的,不建议使用

  • JSON_O3顾名思义,是 GCC 12.2.0版本开O3优化编译得到的

  • json.h中定义了解释器的API

  • parser.h中定义了解析文本的类和相关方法

  • 很多API就是练习,可能并没有被完全利用到,具体细节可以进一步调整

    • 注: 一些移动构造函数可能在编译器返回值优化时被选择到,具体我还没有太弄清楚

代码规范

  • Google

Goole C++ sytle guide

Effective C++

  • 尽量不使用 #define
  • 尽可能的使用 const
  • 了解C++默认生成的函数
  • 不必要的特种成员函数明确禁止
  • 为多态基类声明 virtual析构函数
  • 不要在构造和析构函数中调用 virtual函数
  • 析构函数不要抛出异常
  • 对象复制勿忘每一个成分(如:基类中的资源)
  • operator=应该返回自身引用
  • const引用传递优于按值传递
  • 当所有的参数都需要类型转换时,将函数定义为非成员函数
  • 用对象来管理资源
  • 尽可能使用 std::unique_ptr,必要时使用 std::shared_ptr
  • 了解 RAII(Resource Acquisition Is Initialization)对象的拷贝行为
  • 资源管理类中提供对原始资源的访问
  • 使用C++提供的cast而不是原始的C风格强制类型转换
  • newdelete要使用相同形式
  • 使用新的类型让接口不易被误用

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published