Boost库Json使用

#include <iostream> #include "boost/json/src.hpp" // 构造json void create_json() { boost::json::object val; val["a_string"] = "helloworld"; val["a_number"] = 123; val["a_null"] = nullptr; val["a_array"] = {1, &q...

Lua调用C++对象

#pragma once #include <functional> #include <vector> #include "lua.hpp" namespace sunny { template <typename T> class luna { private: using member_func_t = std::function<int(lua_State*, T&)>; member_func_t func_; public: static std::vector<...

LNMP环境配置阿里云SSL证书

先上传证书到服务器listen 80; listen 443 ssl http2; #listen [::]:80; # 证书路径 ssl_certificate /root/.ssh/web/www.jiangpenghui.cn.pem; ssl_certificate_key /root/.ssh/web/www.jiangpenghui.cn.key; server_name www.jiangpenghui.cn jiangpenghui.cn; # http 转 h...

Spdlog学习

logger.h#pragma once #include <memory> #include "spdlog/spdlog.h" namespace sunny { class logger final { public: static logger& instance(); logger(const logger&) = delete; logger& operator=(const logger&) = delete; private: logger() = default;...

C++实现配置文件读取

common_func.hnamespace sunny::common_func{ static bool trim(std::string& str_value) { if (!str_value.empty()) { str_value.erase(0, str_value.find_first_not_of(" \n\r\t")); str_value.erase(str_value.find_last_not_of(" \n\r\t") + 1); return true; ...

LNMP配置Nginx域名301重定向

# 进入配置目录下 cd /usr/local/nginx/conf/vhost/ # 打开配置文件 vim xxxxx.conf # 修改配置文件 server { listen 80; #listen [::]:80; server_name www.jiangpenghui.cn jiangpenghui.cn; index index.html index.htm index.php default.html default.htm default.php; root /home/www...

时间轮定时器实现

原理定时器的精度假设每一格为2.5 ms 0.0025 * 256 * 63 * 63 *63 *63 = 10,081,895.04 sec 10,081,895.04 / 60 / 60 /24 = 116.6886 day 定时器有效时间最大范围unsigned int 2^32 拆分为5个时间轮 2^8 2^6 2^6 2^6 2^6 0~255 0~63 0~63 0~63 0~63 首先对第一个时间轮进行 时长%时间轮长度(优化用&替代%运算符 时长&(时间轮长度-1)) 未超过就将定时任务放入对应格子链表 第一轮盘每一格代表(1) 范围2...