[Assorted-commits] SF.net SVN: assorted:[1257] cpp-commons/trunk/src/commons/array.h
Brought to you by:
yangzhang
From: <yan...@us...> - 2009-03-06 07:22:51
|
Revision: 1257 http://assorted.svn.sourceforge.net/assorted/?rev=1257&view=rev Author: yangzhang Date: 2009-03-06 07:22:46 +0000 (Fri, 06 Mar 2009) Log Message: ----------- added proper operator[] for array Modified Paths: -------------- cpp-commons/trunk/src/commons/array.h Modified: cpp-commons/trunk/src/commons/array.h =================================================================== --- cpp-commons/trunk/src/commons/array.h 2009-03-06 02:32:19 UTC (rev 1256) +++ cpp-commons/trunk/src/commons/array.h 2009-03-06 07:22:46 UTC (rev 1257) @@ -31,7 +31,8 @@ size_t size() const { return n_; } T *get() const { return p_; } T *end() const { return p_ + n_; } - T operator[](size_t i) const { return p_[i]; } + const T &operator[](size_t i) const { return p_[i]; } + T &operator[](size_t i) { return p_[i]; } void reset(T *p, size_t n) { p_ = p; n_ = n; } private: T *p_; @@ -53,7 +54,8 @@ T *get() const { return p_.get(); } T *release() { return p_.release(); } T *end() const { return this->get() + n_; } - T operator[](size_t i) const { return p_[i]; } + const T &operator[](size_t i) const { return p_[i]; } + T &operator[](size_t i) { return p_[i]; } void reset(T *p, size_t n) { p_.reset(p); n_ = n; } private: unique_ptr<T[]> p_; @@ -67,7 +69,7 @@ void swap(array<T> &a, array<T> &b) { - std::swap(a.p_, b.p_); + boost::swap(a.p_, b.p_); swap(a.n_, b.n_); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |