$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Neal D. Becker (ndbecker2_at_[hidden])
Date: 2004-04-12 10:22:36
I'm looking at circular_buffer.  It appears to me that operator[] uses
"add", and that "add" only allows a positive value of offset?  It is not
difficult to allow arbitrary values, and this is very useful.  
if "position" is the current "m_first" and "allocated" is the allocated
buffer size, the index could be calculated:
  int index (int offset) const {
    int x = (offset + position) % int(allocated);
    if (x >= 0)
      return x;
    else
      return x + allocated;
  }