[英]Is there anything else to std::cbegin() other than begin()ing a const reference?
我只能編寫C ++ 11代碼,但是我想使用std::cbegin()
。 因此,我正在系統上的/usr/include/c++/5/bits/range_access.h
查看GCC 5.4.0的實現,以為我可能會寫類似的東西,並且看到:
template<class _Container>
inline constexpr auto
cbegin(const _Container& __cont) noexcept(noexcept(std::begin(__cont)))
-> decltype(std::begin(__cont))
{ return std::begin(__cont); }
這就是全部嗎? 我想念什么嗎? 如果是這樣,它為什么不像std::begin()
那樣成為C ++ 11的一部分?
這就是全部嗎?
是。
我想念什么嗎?
不是我知道的。
如果是這樣,它為什么不像std :: begin()那樣成為C ++ 11的一部分?
全局模板似乎已經成為原始提案的一部分,作為成員功能的替代方案,但是該提案更傾向於僅提供成員功能,而僅提供全局模板,或者既提供模板又提供成員。 (假設這是原始建議: N1674 )。
委員會選擇在C ++ 11中包括成員函數替代,而直到C ++ 14才包括模板。 我不是委員會的成員,不能代表他們發言,但是我的猜測是,提案的態度可能會影響該決定:
盡管這種通用適配器替代方案似乎非常簡單,但是我們仍然贊成上面提出的成員函數方法。 似乎更符合當前的C ++編程習慣,例如並行使用rbegin作為容器成員函數而不是通用適配器
這是C ++標准庫缺陷報告(2128)的開發內容,畢竟模板版本最終被決定采用C ++ 14。
不,涵蓋了它。
盡管可以通過較小的工作量就可以將少量功能添加到標准中,但是時間是有限的,委員會沒有無限的資源。 在C ++ 14為std::make_unique
之前,省略了一個相當有用且微不足道的函數的另一個示例。 隨着時間的推移,情況會有所改善。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.