knowledge index
Contents
Linux
c++
取二进制最右非 0 位:n & (~(n - 1)), 但是有溢出的风险
n & -n returns the rightmost 1 bit in n.
n & (n - 1) 消除最右 1
X % 2^n = X & (2^n - 1),环形队列,时间轮实现
GUARDED_BY
容器元素比较:严格弱序
s.size() - 10 的结果是无符号
17 版本后,可以直接写 std::array vec = {“hello”}, 不用写类型和个数了
对 cast 完的指针就行 dereference 是 UB(TBAA 优化)
template
- 测试类型
- 测试满足条件
- static_assert 不能直接写 false
- 协变&逆变
Rust
inclusive ranges
1 2 3 4 5
fn main() { for i in 0..=26 { println!("{}", i); } }
matches!
1 2
let bar = Some(4); assert!(matches!(bar, Some(x) if x > 2));
Trait 不仅可以包含 type 和 function,还可以包含常量
MutexGuard !send but sync
网络
go
分布式
其他
Author bilosikia
LastMod 2021-06-09