Quick A: There is, in C++14.
From SO:
Is there a way to use standalone std::begin and for a const_iterator?
I like consistency. I recently asked the question of using
std::begin
vs. e.g.std::vector<int>::begin
, and the unanimous decision seemed to be to use the former since it is more general. But I think I found a stick in the mud. Sometimes, you want to convey you will not change a container as you loop through it, hence callingstd::vector<int>::cbegin
. It would make your code quite asymmetric if you sometimes diditer = v.cbegin()
and other times diditer = begin(v)
. Is there a way around this lack of symmetry, and would you still recommendstd::begin
given this knowledge? Why does C++ not havestd::cbegin
?
Add a Comment
Comments are closed.