败犬日报 2025-08-08
1. 数独网站
https://sudoku.com/zh/extreme/
2. 临时对象是纯右值
众所周知 std::vector{1} = std::vector{2};
可以编译通过。
另一个例子是:
cpp
struct T {
T& operator=(T) { return *this; }
};
struct V {
V& operator=(V) & { return *this; }
};
int main() {
T{} = T{}; // ok
V{} = V{}; // error: Candidate function not viable: expects an lvalue for object argument
}
这里的 V 的拷贝函数限制了左值,因此过不了编译。