0%

先说解决方案 参考 Networking problems with WSL2 and Docker Desktop for windows ,编辑 /etc/docker/daemon.json,加入 "bip": "192.168.200.1/24"(根据实际情况替换),然后 systemctl 重载配置、重启 Docker 一通操作后用 ip route 和 ifconfig 验证一下变化。 为什么会有这个需求 WSL2 的网段是 172.17 开头的,这恰好和 Docker 的默

参考 https://joellaity.com/2020/01/31/string.html std::string 是 std::basic_string<> 的一个特化,该类的 value_type 是 char。本文虽然是讨论 std::basic_string<> 的实现方式,但是为了方便,假设 value_type 是 char、假设目标平台是 64 位,讨论时也将把 std::basic_string<> 和 std::string 互用。 stdlibc++ stdlibc++ 是 gcc 所用的标准库实现,也是 clang 在不提供 -stdlib=... 选项下的默认标准库实现。在 64 位环境下,stdlibc++ 中的 std::string 占用 32 个字节。 [!TIP] std::vector<> 的大小(s

我在做什么? 你想要最终达成什么(目标)?你采用了什么样的路径来达成它(途径)? [!TIP] 有可能你的目标是不现实的,或者是假想出来的替代目标,换一个目标同样能解决你的困难,但是解决起来容易很多。也可能你的路径是有错误的。 例子:我希望调用接口 A 来加载目录 B 下的所有图片,供程序的其他组件使用。

资源 可用 Docker Hub 镜像加速器列表见 Docker Hub 镜像加速器 。 修改方式 网络上有不少教程是先修改 /etc/docker/daemon.json,然后: sudo systemctl daemon-reload sudo systemctl restart docker 但是这样需要重启 Docker。虽然可以先给 Docker 加上 live-store 属性,但是我也不敢冒这个风险。 还有一种是修改配置文件后(参考 这篇文章 ): sudo systemctl reload docker 然后用

写在前面 内容见 implicit conversion 。 限定性转换指的是和 cv 属性有关的类型转换,它的发生必须满足一定的条件。 相似类型 忽略掉各层的 cv 属性,如果两个类型形式相同,就是相似类型。比如 const int* volatile * 和 int** const。 [!IMPORTANT] 函数指针对应函数的参数和返回值类型的 cv 属性不可以忽略。可见原页面的例子,这里略去。 限定性分解 合并限

写在前面 参考链接 https://www.youtube.com/watch?v=bpF1LKQBgBQ 这篇演讲有关 C++ 中的 trivial 概念。并且提到当对象 trivially copyable 时,参数传递和返回值都会变得更容易优化。 返回值优化 第 2 段代码在 C++20 之前不能被优化是因为结构化绑定的分量是结构体的一部分,作为返回值时不能被直接建在调用者的栈上。 Trivial 的概念 [!NOTE] 有虚函数或者虚基类(也就是需要 vptr),就不满足

参考 https://en.cppreference.com/w/cpp/language/copy_elision C++17 prvalue semantics (“guaranteed copy elision”) 返回值(或函数参数)的位置,如果表达式是纯右值,且返回值(或函数参数)需要的也是同一类型的纯右值,那么标准就要求省略复制和移动。不过,为了让语义检查通过,要构造对象的析构函数必须在此处可以访问,尽管在完成优化之后并不会用到析构函数。 T f() { return U(); // constructs a temporary of type U, // then initializes

这个问题在 Windows MSYS2 中没有出现,但是在 WSL 上出现了。在调试时对 std::vector 的显示如下: 本来我是用的 CMake 上的调试启动功能的, StackOverflow 上面让用 .vscode/launch.json,我也试了,但是同样不行。这是我写的启动文件内容,主要是在 setupCommands 中打开了 pretty-printing 功能: { // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. "version": "0.2.0", "configurations": [ { "name": "gdb - debug active

假设是 3 号卡,用 sudo lsof /dev/nvidia3 看看有哪些进程正在使用这个设备。然后用各种手段查看各个可疑进程的信息(假设进程号是 66666): ps ww 66666( BSD 风格的 ps ,而不是 System V)。 cat /proc/66666/status 查看进程状态。除了 status 之外,还有其他信息可以在 /proc 下查看。 htop -p 66666 或者 top -p 66666。 当时服务器上占用资源较多的几个进程都