nlohmann-json
https://github.com/nlohmann/json/
https://json.nlohmann.me/features/arbitrary_types/
创建 json 对象
1 | // create an empty structure (null) |
https://github.com/nlohmann/json/
https://json.nlohmann.me/features/arbitrary_types/
1 | // create an empty structure (null) |
https://developers.google.cn/protocol-buffers/docs/cpptutorial
首先编写.proto文件定义数据结构,然后用protobuf工具生成对应编程语言的序列化和反序列化代码。
随着数据格式版本的更新,protobuf会自动处理对旧格式的兼容。
1 | syntax = "proto2" |
vcpkg 是 Microsoft 的跨平台开源软件包管理器,极大地简化了 Windows、Linux 和 macOS 上第三方库的配置与安装。如果项目要使用第三方库,建议通过 vcpkg 来安装它们。vcpkg 同时支持开源和专有库。
vcpkg 为我们处理好了各种软件包的依赖关系和编译配置,安装软件包时软件包源码被下载下来,并通过 CMake 在本地编译。目前官方和社区提供了对各种平台和编译器的支持。
1 | git clone https://github.com/microsoft/vcpkg |
在经典模式下,使用 vcpkg 作为命令行接口在全局安装目录中安装依赖项。 该目录通常位于 %VCPKG_ROOT%/installed,其中 %VCPKG_ROOT% 是 vcpkg 安装目录所在的位置。
查询软件包:
1 | .\vcpkg.exe search xxx |
安装软件包:
1 | .\vcpkg.exe install xxx |
清单模式是大多数用户推荐的工作流。
在清单模式下,在名为 vcpkg.json 的清单文件中声明项目的直接依赖项。
清单文件有自己的 vcpkg_installed 目录,可在其中安装依赖项,与所有包都安装在全局 %VCPKG_ROOT%/installed 目录中的经典模式不同。每个项目都可以有自己的清单和自己的一组依赖项,这些依赖项不会与其他项目的依赖项发生冲突。
假设项目需要以下依赖库:cxxopts、fmt、range-v3。
在项目所在的同一目录中创建一个名为 vcpkg.json 的文件:
1 | { |
如果想要手动安装依赖项,只需在包含清单文件的目录中运行 vcpkg install。
该命令完成后,所有生成的包都将出现在 vcpkg_installed 目录中。 此目录的具体位置取决于构建系统;通常,在构建系统的默认输出文件夹内,或 vcpkg.json 文件旁边。
https://flask-restful.readthedocs.io/en/latest/quickstart.html#full-example
1 | from flask import Flask |
运行程序:
1 | $ python api.py |
测试API:
1 | $ curl http://127.0.0.1:5000/ |
1 | $ENV{PATH} |
相当于VS中的解决方案名称。
1 | project(sqlitebrowser) |
1 | cmake_minimum_required(VERSION 2.8.7) |
1 | set(QSCINTILLA_DIR libs/qscintilla/Qt4Qt5) |
1 | ${SQLB_HDR} |
${PROJECT_NAME}指project指令中设置的名称。
1 | add_executable(${PROJECT_NAME} |
1 | add_definitions(-DENABLE_SQLCIPHER) |
1 | if(NOT CMAKE_BUILD_TYPE) |
《Visual C++/CLI 从入门到精通》 笔记
C++/CLI是C++和 .Net Framework 平台版本,它对标准C++进行了一些修改。标准C++允许的一些操作在C++/CLI中是不允许的(例如不能从多个基类继承),并进行了一些修改以支持.NET功能(例如接口和属性)以及兼容.Net运行时。
选择C++/CLI有两个重要理由。首先是互操作性,C++/CLI简化了将标准C++代码集成到.NET项目的步骤。其次是现在有了C++标准模板库(STL)的.NET版本,熟悉STL编码的人很容易迁移到.NET。
1 | ref class Animal |
ref关键字用于简化与 .NET Framework 组件的交互。在class关键字前添加ref,类就成了托管类。实例化对象时,会在“公共语言运行时”(CLR)堆上创建对象。对象的生存期由 .NET Framework 的垃圾回收器管理。
也可以定义非托管类,即不加ref关键字。
1 | Animal cat, dog; |
在C++/CLI中,是“运行时”帮你管理内存,C++/CLI没有了传统的“指针概念”。相反是用句柄来包含变量的地址。使用gcnew操作符动态创建对象。
定义一个指向Animal对象的句柄:
1 | Animal ^dog = gcnew Animal; |
https://www.programcreek.com/python/
1 | #!/usr/bin/env python3 |
1 | #!/usr/bin/env python3 |
1 | #!/usr/bin/env python3 |
《Python基础教程》笔记
Python具有丰富和强大的库
1 | 2**3 # 幂运算符 |
1 | x = 3 |
str 类型
repr 函数
1 | str(1000L) # -> 1000 |
1 | "Hello " + "World!" |
保留换行,和特殊字符比如’”:
1 | """ string """ |
原始字符串:
1 | r'Hello,\nWorld!' |
Unicode字符串:
1 | u'Hello World' |