首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么在C++20中引入std::ssize()?

为什么在C++20中引入std::ssize()?
EN

Stack Overflow用户
提问于 2019-05-20 16:46:28
回答 2查看 9.2K关注 0票数 106

C++20引入了免费的std::ssize()函数,如下所示:

代码语言:javascript
复制
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()

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56217283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档