我受限於編寫C++ 11代碼,但我想使用std::cbegin()
。所以,我在看GCC 5.4.0的實現,在/usr/include/c++/5/bits/range_access.h
我的系統上,想着我可能會寫類似的東西,我看到:還有什麼其他的std :: cbegin()除了開始()一個const引用?
template<class _Container>
inline constexpr auto
cbegin(const _Container& __cont) noexcept(noexcept(std::begin(__cont)))
-> decltype(std::begin(__cont))
{ return std::begin(__cont); }
是所有有給它?我錯過了什麼嗎?如果是這樣,那麼它怎麼不是C++ 11的一部分,如std::begin()
?
至於爲什麼它不是部分:因爲你沒有及時寫出提案。對你感到遺憾:-) –
我真的不明白這個問題。除了「是」之外還有其他答案嗎? –
「std :: begin/end」被添加的主要原因之一是如此簡單的數組(它沒有'begin/end'成員函數)可以用在range-for循環中。對於那個,「std :: cbegin/cend」不是必需的。 –