簡體   English   中英

除了begin()const引用之外,std :: cbegin()還有其他東西嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM