败犬日报 2025-10-19
败犬日报 2025-10-19
1. 有个两年经验的同事显然对 unique_ptr 的理解局限在“如果要用等号连起来需要把后边那个加上 std::move”
逆天。
2. requires 和 SFINAE 移出重载集是在同一个时间
3. requires { expr; }
和 requires expr
的区别
requires { expr; }
是 requires 表达式 (requires expression),判断 expr 合不合法,可以得到一个 bool 值。ref
requires expr
是 requires 子句 (requires clause),约束模板的语法,检查 expr 是否为真。ref
cpp
template <typename T>
concept Addable = requires { T{} + T{}; }; // requires 表达式
template <typename T>
requires Addable<T> // requires 子句
void f() {}
template <typename T>
requires requires { T{} + T{}; } // requires 子句套 requires 表达式
void g() {}
int main() {
f<int>();
g<int>();
}