35 #pragma GCC system_header 37 namespace std _GLIBCXX_VISIBILITY(default)
39 _GLIBCXX_BEGIN_NAMESPACE_VERSION
115 : _M_count(1), _M_start(0), _M_size(), _M_stride(), _M_index() {}
126 {
return --_M_count; }
131 template<
typename _Tp>
friend class valarray;
136 {
return _M_index ? _M_index->_M_start : 0; }
150 : _M_index(new
gslice::_Indexer()) {}
155 : _M_index(new
gslice::_Indexer(__o, __l, __s)) {}
159 : _M_index(__g._M_index)
160 {
if (_M_index) _M_index->_M_increment_use(); }
165 if (_M_index && _M_index->_M_decrement_use() == 0)
173 __g._M_index->_M_increment_use();
174 if (_M_index && _M_index->_M_decrement_use() == 0)
176 _M_index = __g._M_index;
182 _GLIBCXX_END_NAMESPACE_VERSION
Class defining multi-dimensional subset of an array.
valarray< size_t > size() const
Return array of sizes of slice dimensions.
ISO C++ entities toplevel namespace is std.
gslice & operator=(const gslice &)
Assignment operator.
gslice()
Construct an empty slice.
valarray< size_t > stride() const
Return array of array strides for each dimension.
size_t start() const
Return array offset of first slice element.