gpt4 book ai didi

c++ - 非成员非 friend `std::size()`,适用于 C 数组和 vector

转载 作者:行者123 更新时间:2023-11-30 17:00:45 25 4
gpt4 key购买 nike

有很多benefits使用非成员非友元函数。一个很好的例子是使用非成员(member) std::begin()而不是成员函数 .begin(),因为前者也适用于 C 数组,而后者对于 C 数组没有意义。

拥有 std::size() 更有意义同样,出于同样的原因,我们有 std::begin(),使用户能够编写如下代码:

int a[] = {1,2,3};
cout << std::size(a); // to print 3

在标准中包含这样的功能是否存在任何技术问题?

(可能的实现就是 return end(a) - begin(a);,它适用于 C 数组和 vector 。)

最佳答案

不存在技术问题。它已被投票纳入工作论文,但发生在 C++14 发布之后。

Non-member size() and more (Revision 2)

WG21 2014-11 Urbana Minutes

http://en.cppreference.com/w/cpp/iterator/size

预计它会出现在 C++17 中。

附注附带说明一下,现有的 std::extent 可用于确定数组大小,但它没有统一非容器和容器接口(interface)。所以,这不是你说的。

关于c++ - 非成员非 friend `std::size()`,适用于 C 数组和 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37368444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com