摘要:
std::condition_variable 是 C++11 引入的同步原语, 它用于线程间通信,允许一个或多个线程等待某个条件成立,直到另一个线程发出通知。 它是实现生产者-消费者模型、任务队列、事件等待等多线程模式的核心工具。 条件变量本身不存储状态,它只是一个“通知机制”。 它必须与 std 阅读全文
posted @ 2019-06-24 22:42
osbreak
阅读(281)
评论(0)
推荐(0)
摘要:
xx 阅读全文
posted @ 2019-06-24 22:36
osbreak
阅读(133)
评论(0)
推荐(0)
摘要:
std::this_thread::yield(): 当前线程放弃执行,操作系统调度另一线程继续执行。 区别 std::this_thread::sleep_for(): 表示当前线程休眠一段时间,休眠期间不与其他线程竞争CPU,根据线程需求,等待若干时间。 #include <iostream> 阅读全文
posted @ 2019-06-24 22:34
osbreak
阅读(2137)
评论(0)
推荐(0)
摘要:
boost::static_visitor 是 Boost.Variant 库中的一个辅助类,用于定义 访问者(visitor),以便在 boost::variant 类型上执行 静态多态操作。 它允许你安全地对变体(variant)中存储的不同类型进行不同的处理,避免了复杂的 if-else 或类 阅读全文
posted @ 2019-06-24 22:13
osbreak
阅读(624)
评论(0)
推荐(0)
摘要:
std::optional 是 C++17 引入的一个容器类模板,用于表示一个值可能存在,也可能不存在。 它提供了一种类型安全的方式来处理“可空值”(nullable value),避免使用 nullptr、特殊值(如 -1)或 bool、value 的笨拙方式。 std::optional<T> 阅读全文
posted @ 2019-06-24 16:04
osbreak
阅读(1239)
评论(0)
推荐(0)
摘要:
xx 阅读全文
posted @ 2019-06-24 16:00
osbreak
阅读(1086)
评论(0)
推荐(0)
摘要:
1.01 双缓冲 (Double Buffering) 防闪烁 在 QWidget 的 paintEvent() 中,直接绘制到屏幕可能导致闪烁。 使用 双缓冲技术:先将所有内容绘制到一个离屏的 QPixmap 或 QImage 上,然后在 paintEvent 的最后,将这个完整的图像一次性绘制到 阅读全文
posted @ 2019-06-24 15:57
osbreak
阅读(1569)
评论(0)
推荐(0)
摘要:
#include <initializer_list> template <class T> class initializer_list; initializer_list对象中的元素永远是常量值const T,不能对initializer_list对象中元素的值修改 使用场景 1、可以使用初始化 阅读全文
posted @ 2019-06-24 15:13
osbreak
阅读(598)
评论(0)
推荐(0)
摘要:
std::decltype decltype ( 实体 ) decltype ( 表达式 ) 若实参是其他类型为 T 的任何表达式,且 a) 若 表达式 的值类别为亡值,则 decltype 产生 T&&; b) 若 表达式 的值类别为左值,则 decltype 产生 T&; c) 若 表达式 的值 阅读全文
posted @ 2019-06-24 14:53
osbreak
阅读(1611)
评论(0)
推荐(1)
摘要:
auto 1.0 定义变量时,必须初始化 auto a = 10; // 正确 auto b; // 错误 1.1 不能用于函数参数 void func(auto a = 1); // 错误 1.2 不能用于函数参数 struct Foo { auto var1_ = 0; // error: au 阅读全文
posted @ 2019-06-24 14:52
osbreak
阅读(277)
评论(0)
推荐(0)
浙公网安备 33010602011771号