摘要:
#include <functional> #include <iostream> void print_num(int i); inline void print_num(int i) { std::cout << i << '\n'; } struct PrintNum { void opera 阅读全文
摘要:
boost 中有一个模板函数 type_id_with_cvr 可以将变量类型的描述信息打印出来。 std::is_same 用于判断两个类型是否一致,强规则判断模式,例如 const int != int; std::decay 用于判断两个类型是否一致,弱规则判断模式,例如 const int 阅读全文
摘要:
知识点 c++ std:call_once 可以用于保证某个函数在多线程环境下只被调用一次。 std::enable_if 泛型编程中模板最优匹配原则,template<bool Cond, class T = void> struct enable_if {}; //The type T is e 阅读全文
摘要:
std::floor //-->向下取整数 std::ceil // -->向上取整数: std::llround //最接近的整数 std::numeric_limits<double>::epsilon() //最小双精度小数 std::numeric_limits<int>::max() // 阅读全文
摘要:
A spinlock mutex can be implemented in userspace using an atomic_flag. 一旦标识对象初始化完成,只能做三种操作:销毁、清除或设置并查询其先前的值。 这些分别对应析构函数、clear()函数以及test_and_set()函数。 c 阅读全文
摘要:
1. Relaxed ordering: 在单个线程内,所有原子操作是顺序进行的。两个来自不同线程的原子操作是任意顺序的。 2. Release -- acquire: 来自不同线程的两个原子操作顺序限制,需要两个线程进行一下同步(synchronize-with)。同步对一个变量的读写操作。线程 阅读全文