$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-users] shared_array const member function
From: Daya S. Prasad (mail.dsp_at_[hidden])
Date: 2009-08-26 01:00:01
Can any body please tell me why operator[] is defined in case of
shared_array<T> like this way:
Type & operator[](std::ptrdiff_t) const;
It reports compile time error. Consider the code:
class Widget {
std::string classId;
public:
std::string getClassId() const {
return classId;
}
};
int main()
{
boost::shared_array<Widget> obj(new Widget[10]);
std::string id = obj[7].getClassId
(); // Error
}
In my opinion operator function should be defined as follows:
const Type & operator[](std::ptrdiff_t) const;
Type & operator[](std::ptrdiff_t) ;
Please clear my consfusion. Thanks in advance.