Boost logo

Boost Users :

From: Ai Azuma (ai.azuma_at_[hidden])
Date: 2006-01-15 10:43:05

2006/1/15, Felipe Magno de Almeida <felipe.m.almeida_at_[hidden]>:
> [snip]
> Offtopic: Maybe the problem doesnt lie on const/non-const member
> functions? And the ugly syntax to choose the const when using a
> non-const class?
> Maybe this proposal shouldnt be more general? Not applying only to
> iterator/const_iterator. IMO, if it was, it would probably have more
> chance of acceptance.

IMHO, cbegin/cend proposal may be too specific as you mentioned.
There may be other cases where const/non-const member function
overload resolution by programmers is desirable. And inline cv-qualification
conversion may become a more generic approach in such cases.

For example, consider the following code.

// a vector class with copy-on-write
template< class T >
class vector_with_cow
  T &operator[]( size_type index );
  T const &operator[]( size_type index ) const;

void f( vector_with_cow< int > &v )
  if( const_( v )[0] == 0 ){ // do not require deep copy

  // write some values into v, require deep copy

Best regards,

Ai Azuma <ai.azuma_at_[hidden]>

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at