为什么 std::atomic<T> 模板不提供 sub_fetch() 成员函数?

Why std::atomic<T> Template don't provide sub_fetch() member function?

https://en.cppreference.com/w/cpp/atomic/atomic

std::atomic成员函数只能获取修改前的值, 但我想知道如何以原子方式获取修改后的值

以及为什么 std::atomic 模板不提供像 sub_fetch() 这样的功能?

确实如此。它被称为 operator-=

std::atomic<int> i(5);
int f = i -= 5;
std::cout << f << "\n"; // 0

-= 是您为非原子对象编写此操作的方式,因此 std::atomic 使用相同的运算符。 fetch_* 操作是对规范的突破,因为普通值没有这些操作,但原子值有。因为它们没有可用的运算符,所以它们必须有字母名称。