不积小流,无以成江海

海纳百川,有容乃大

学习 c++20 首先要有支持相关特性的编译器

msvc2019 如果和工作用的 msvc2015 安装在同一台机器上,在使用 vcpkg 时会产生冲突

clang 在 windows 下的使用并不平滑,如果初衷是 c++20,就不要舍本逐末。在熟悉 c++20 后回头折腾 clang

虚拟机上安装 msvc2019,Hyper-V 是好的选择吗?如果要用 VMware 还是躲开 Hyper-V

阅读全文 »

查看 std::exception 的定义,除了析构函数,其他包括默认构造和拷贝构造在内的函数都声明为 noexcept

因为不允许复制 std::exception 抛出异常,故当派生类(例如 std::runtime_error )必须管理用户定义的诊断信息时,常将它实现为写时复制的字符串。

查看 std::logic_error 的定义std::runtime_error 的定义:

因为不容许复制 std::logic_error 抛出异常,通常将此消息在内部存储为分离分配的引用计数字符串。这也是构造函数不接收 std::string&& 参数的理由:无论如何它必须复制内容。

阅读全文 »

内核对象的概念,是什么?

设备内核对象?

事件内核对象?

阅读全文 »

安装 VMware workstation 15 player 时,提示:

VMware workstation 15 player 和 Hyper-V 在此版本的 windows 上不兼容。

请从系统中移除 hyper-v 角色或将 windows 更新到 windows 10 版本 20H1。

我选择了在“启用或关闭 windows 功能”中关闭 Hyper-V,需要重启。后续启动虚拟机的时候还是报错:

您的主机不满足在启用 Hyper-V 或 Device/Credential Guard 的情况下运行 VMware Workstation 的最低要求。

参考帖子 :在禁用 Device/Credential Guard 后,可以运行 VM 的方法 , 重启生效。

阅读全文 »

最近两会,科学上网又宕机了。打算专心学习一下 v2ray 的插件和配置,此笔记用于备忘操作过程中的细节。也涉及 linux 系统的基础操作。

为了安全(和方便),提出以下要求或目标:禁用账号密码登录,全部改用密钥。 建立 vps 后的第一步

关于 v2ray xray v2fly,可以看看 V2Ray、Trojan、XRay

阅读全文 »

建立 vps 后(主要用于科学上网)首先要保证后续的使用安全。否则再多的功能都是空中楼阁。

SSH 登录

非对称密钥算法的作用分为两种场景:

  • 加密数据:公钥加密,私钥解密。数据由前者发往后者,数据是安全的。
  • 认证:私钥加密,公钥解密。后者验证前者的身份,传输数据的安全性是没有保证的。

那么远程登录呢?

SSH 本身提供两种级别的验证方法:基于口令的安全验证;基于密钥的安全验证。引用来源

阅读全文 »

在工作中,遇到的几个关于构造函数的问题,以及语言边缘的坑(如何避开)。

显式类型转换函数和构造函数优先级?

1
2
3
Minimal(src);	// 不是类型转换语法吧?
// vs
(Minimal)src;

会先按照构造函数解析,还是

构造函数能不能相互调用?

http://www.cppblog.com/wolf/articles/63490.html

http://www.cnblogs.com/chio/archive/2007/10/20/931043.html

传统的 func(var) 调用方式肯定不行,因为这意味着在某构造函数中又创建了个临时对象。

阅读全文 »

检查内存泄漏

Linux 下使用 Valgrind;Windows 下使用 Visual Leak Detector。前者没接触过,后者的确不错。

虽然在 Windows 下可以使用 CRT:Find memory leaks with the CRT library,但因为其也会报全局变量以及 static 变量(报告早于这两者的析构),当项目体量较大,全局变量或 static 变量较多时,没有有效的区分,查找真实的内存泄漏就会比较棘手。

  1. Enable memory leak detection,如何启用

    只在启用 _DEBUG 时有效;若程序存在多个退出点,可以使用 _CrtSetDbgFlag 函数;报告默认在“输出”窗口打印,但可以自定义。

  2. Interpret the memory-leak report,报告怎么看

    重点强调了检测只针对 malloc 函数,无法检测 new 操作符。但其提供了使用 _malloc_dbg 实现的 operator new 重载版本:

  3. Set breakpoints on a memory allocation number,如何打断点

  4. Compare memory states,对比不同时刻的快照

  5. False positives,误报现象

阅读全文 »

如题,在此做一份备忘,记录在 Windows 下进行 C++ 开发用到的工具、插件及其意义。

当然多少会涉及到如何安装、配置这些工具,但不会多做介绍。

  1. Visual Studio,越新越好,但都有历史包袱
  2. Visual AssistX 破解费时费力,还有兼容问题。非重度用户,可探索 visual studio IDE 自身
  3. vcpkg 包管理器
  4. spdlog 通过 vcpkg 安装
  5. vld, Visual Leak Detector
  6. 不使用制表符,转换为 4 个空格。配置 IDE 实现。

Visual Studio2015 IDE 中需要安装的插件(vc2017 中可能已经内嵌了某些插件的功能)

阅读全文 »

结论

cdn 节点和源上相同文件的 etag 或 lm 是相同的。

http header response

https://kb.cnblogs.com/page/92320/

2019/7/23 14:00:43 请求源 101.200.199.142 cdnapp.ydtg.com.cn

Date 原始服务器消息发出的时间

1
2
3
4
5
6
7
8
9
10
11
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 23 Jul 2019 06:00:42 GMT
Content-Type: application/octet-stream
Content-Length: 1200940
Last-Modified: Tue, 23 Jul 2019 00:58:00 GMT
Connection: keep-alive
ETag: "5d365b98-12532c"
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Accept-Ranges: bytes
阅读全文 »
0%