摘要: g++链接报错:undefined reference to typeinfo of xxx 问题背景 在项目中遇到了这样一个问题:C++文件编译都OK,但链接的时候报错:undefined reference to typeinfo for xxx。 std::typeinfo 是C++中的RTT 阅读全文
posted @ 2024-08-30 17:56 3的4次方 阅读(1) 评论(0) 推荐(0) 编辑
摘要: QPointer、QScopedPointer、QSharedPointer、QWeakPointer QSharedPointer:std::shared_ptr QWeakPointer:std::weak_ptr QScopedPointer:std::unique_ptr QPointer: 阅读全文
posted @ 2024-08-23 16:16 3的4次方 阅读(3) 评论(0) 推荐(0) 编辑
摘要: QT中一些常用的宏 宏 说明 Q_ASSERTQ_ASSERT_X 常用于断言,Release模式下不起作用 Q_ASSUME = Q_ASSERT_X + Q_UNREACHABLE Q_COREAPP_STARTUP_FUNCTION 添加一个全局函数,在QCoreApplication构造时被 阅读全文
posted @ 2024-08-23 10:08 3的4次方 阅读(3) 评论(0) 推荐(0) 编辑
摘要: C++ 返回值类型推导 前言 C++ 中获取函数签名可以很简单地用 decltype(函数名) 来获得,但是这样无法直接提取出返回值类型。 有时我们需要获取函数或可调用对象的返回值类型,以便进行后续的操作,在泛型编程中很常用,特别是当不同的参数集的结果类型不同时。 头文件 <type_traits> 阅读全文
posted @ 2024-08-04 14:07 3的4次方 阅读(6) 评论(0) 推荐(0) 编辑
摘要: C++对象析构顺序问题——由QObject::desroyed展开的思考 C++析构函数执行的顺序是最先执行继承链最末端的子类的,最后执行顶层的基类的。 而 QObject::destroyed(QObject* obj = nullptr) 信号在 Qt 文档中说是“在 obj 被完全析构时之前立 阅读全文
posted @ 2024-08-01 10:46 3的4次方 阅读(5) 评论(0) 推荐(0) 编辑
摘要: C++获取类型名称的技巧 在某些情况下,我们需要明确知道编译器推导出的类型,特别是复杂类型。这些类型信息对于调试、优化和确保代码正确性非常重要。 技巧1:在编译期确定类型 主要用于模板编程和泛型编程时。 在编译期间确定类型的一种方法是通过引发编译错误,查看编译器的错误信息。 示例:如何通过引发编译错 阅读全文
posted @ 2024-07-14 23:20 3的4次方 阅读(12) 评论(0) 推荐(0) 编辑
摘要: C++11 mem_fn成员指针包装器 介绍 函数模板 std::mem_fn 生成成员指针的包装器对象,用于存储、复制及调用成员指针。指向对象的引用和指针(包括智能指针)都可以在调用 std::mem_fn 时使用。 注意: std::mem_fn 只能包装 public 的成员指针,不能包装全局 阅读全文
posted @ 2024-06-30 23:11 3的4次方 阅读(3) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2024-05-02 15:54 3的4次方 阅读(0) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2024-05-02 14:49 3的4次方 阅读(0) 评论(0) 推荐(0) 编辑
摘要: PostgreSQL 部署 安装 sudo apt install postgresql 安装完成后,会自动注册一个 postgres 的用户,用于支持 PostgreSQL 的本机免密登录。 此外,PostgreSQL 的配置文件存储在 /etc/postgresql/15/main 下,其中 1 阅读全文
posted @ 2024-04-26 19:03 3的4次方 阅读(4) 评论(0) 推荐(0) 编辑