1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
struct some_class
{
some_class() : data(0),sz(0) {}
~some_class() { if(data) delete[] data; }
some_class( some_class const& src) : sz(src.size())
{
data = new double[sz];
std::copy(data,data+sz,src.begin());
}
void swap( some_class& src )
{
std::swap(sz,src.sz);
std::swap(data,src.data);
}
some_class& operator=( some_class src )
{
swap(src);
return *this;
}
std::size_t size() const { return sz; }
double* begin() { return data; }
double const* begin() const { return data; }
private:
double* data;
std::size_t sz;
}; |