Skip to content
败犬日报 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>();
}