【发布时间】:2015-09-11 08:01:59
【问题描述】:
Scott Mayers 的“Effective Modern C++”中的第 13 项声明更喜欢 const_iterators 而不是迭代器。我同意,但我也想使用非成员函数而不是成员函数。根据这本书,在 C++14 中应该有一个非成员函数 std::cbegin() 和 std::cend()。
为了使用这些功能,我刚刚安装了 gcc 版本 4.9.2 并使用标志 -std=c++14 编译。在我尝试使用std::cbegin() 之前,它似乎可以编译。我开始寻找对此功能的支持,但找不到任何相关信息。例如,gnu onlinedocs status 甚至没有提到该函数。
我的问题是,std::cbegin() 和 std::cend() 真的会在 c++14 中得到支持,还是这本书有错误?如果它是 C++14 功能,是否有编译器已经支持这些功能?gcc 什么时候支持?
在 SO 上有很多关于 begin() 的问题,但这些问题是关于成员函数或 constexpr-ness,而不是关于对非成员变体的支持。
【问题讨论】:
标签: c++ std c++14 non-member-functions