C++20引入了免费的std::ssize()
函数,如下所示:
template <class C>
constexpr auto ssize(const C& c)
-> std::common_type_t<std::ptrdiff_t,
std::make_signed_t<decltype(c.size())>>;
一种可能的实现似乎是使用static_cast
,将类C的size()
成员函数的返回值转换为其有符号的副本。
既然C的size()
成员函数总是返回非负值,为什么还要把它们存储在有符号变量中呢?如果有人真的想这样做,这只是一个简单的static_cast
问题。
为什么在C++20中引入std::ssize()
?
https://stackoverflow.com/questions/56217283
复制相似问题