Pimpl 编程技巧
Pimpl(Pointer to Implementation)是一种C++编程技术,用于实现数据封装和减少编译依赖。它的基本思想是将类的实现细节放在一个单独的类中,并通过指针在主类中引用这个实现类。这种方式有几个优点: 减少编译时间:当实现细节发生变化时,只需重新编译实现类,而不需要重新编译使用该类的所有代码。 隐藏实现细节:用户只需了解接口,而不需要关心具体的实现,这有助于提...
Pimpl(Pointer to Implementation)是一种C++编程技术,用于实现数据封装和减少编译依赖。它的基本思想是将类的实现细节放在一个单独的类中,并通过指针在主类中引用这个实现类。这种方式有几个优点: 减少编译时间:当实现细节发生变化时,只需重新编译实现类,而不需要重新编译使用该类的所有代码。 隐藏实现细节:用户只需了解接口,而不需要关心具体的实现,这有助于提...
为了让 ROS 节点在系统启动时自动启动,我们可以将 roscore 作为服务来实现。 创建服务 sudo vim /lib/systemd/system/my-roscore.service 输入如下内容 ###################################################################### # sudo systemctl d...
最近在使用 jetson Orin NX T801开发板的时候遇到个问题,使用官方提供的脚本备份系统镜像后(SSD为 128 G),当把这个系统恢复到 512G 的新 SSD 后,系统只使用了 128G,我现在想把剩余的477G扩展给根目录,该怎么操作?下面有两种方法可供参考(亲测有效)。 注意: 在进行磁盘分区和文件系统操作时,务必备份重要数据,以防止操作失误,数据丢失。 检查当前分区情...
有时候我们不具备可视化的条件,只能通过终端控制 ubuntu 系统,这个时候如果想要去配置它,该怎么办?下面就分享一种相对简单的方法。 安装 network-manager 网络管理工具 sudo apt-get install network-manager 打开 wifi nmcli radio wifi on 关闭 wifi nmcli radio wifi off ...
SSHFS 是一种基于 SSH 协议的文件系统,它允许用户通过 SSH 连接在远程计算机上挂载文件系统,使得远程文件系统可以像本地文件系统一样方便地访问和操作。通过 SSHFS,用户可以安全地在本地计算机上访问和管理远程计算机上的文件,而且所有的数据传输都是加密的,提高了数据传输的安全性。使用 SSHFS,用户可以像操作本地文件一样操作远程文件,包括查看、复制、移动和编辑文件等操作。 SS...
在开发过程中常需要把结构体和 json 相互转换,如果 json 字段较多,简直就是灾难,要写很多重复的、类似的代码,下面推荐一种 struct 转 json 的简便方法。采用 nlohmann_json 实现(不作介绍,自行去 github 查看详情)。 示例 创建一个 test.h 文件,写入下面的代码 #ifndef __TEST__H__ #define __TEST__H__ ...
dbg-macro 是一个 c++ 调试宏,用于简化调试过程。它以非常简洁的方式打印变量名、值、和类型等信息,便于快速定位问题。 特点 简单易用: 使用 dbg(变量) 的方式即可打印变量的名称和值,极大简化了调试信息的打印。 类型安全: 它是基于 c++ 的模板和宏功能实现的,可以保证类型安全。 丰富的信息: 不仅打印变量的值,还可以显示变量的类型,甚至是表达式的值和类型...
在 rust 中,发散函数(diverging functions)是指那些永远不会返回的函数。它们使用 ! 作为返回类型,来表明这个函数不会返回到调用它的代码。这通常用于表示函数会引发 panic 或者进入无限循环,或者有可能调用操作系统的退出函数。 发散函数的返回类型 发散函数的返回类型是 ! , 表示永远不会返回,无论你的函数返回值是啥,使用 ! 作为返回类型都是合法的,因为实际上...
在 rust 中,Fn、FnMut 和 FnOnce 是三种闭包(closure)类型,它们定义了闭包如何捕获外部环境中的变量,通常情况下,编译器会自动推断闭包的类型,但是当使用闭包作为参数时,需要显示指定闭包的类型。 Fn:表示闭包可以通过引用来捕获外部变量(即不可变借用),并且可以多次调用。 FnMut:表示闭包可以通过可变引用来捕获外部变量(即可变借用),并且可以多次调用,但...
最近在使用 ubuntu 开发时,经常会出现开机后系统自动更新,导致某些驱动不能正常工作。这种情况只要禁止系统自动更新, 重新编译并安装驱动就解决了。下面是如何禁止自动更新的步骤。 步骤 1、 sudo vi /etc/apt/apt.conf.d/10periodic 后面部分全部改成 “0” APT::Periodic::Update-Package-Lists "0"; APT:...