Boost logo

Boost :

Subject: Re: [boost] RFC: interest in Unicode codecs?
From: Sebastian Redl (sebastian.redl_at_[hidden])
Date: 2009-07-21 09:41:02


Phil Endecott wrote:
> Is c_str() allowed to be > O(1) ?
Yes. In particular, this implementation is valid:

template <...>
class basic_string
{
  Ch *real_data;
  mutable Ch *cstr_data;
  // ...

public:
  const Ch *c_str() const {
    if (!cstr_data) {
      cstr_data = allocate(size() + 1);
      copy(cstr_data, size());
      cstr_data[size()] = 0;
    }
    return cstr_data;
  }

  void any_modifying_function() {
    if(cstr_data) {
      deallocate(cstr_data);
      cstr_data = 0;
    }
  }
};

Sebastian


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk