36 #pragma GCC system_header
38 namespace std _GLIBCXX_VISIBILITY(default)
40 _GLIBCXX_BEGIN_NAMESPACE_VERSION
116 : _M_count(1), _M_start(0), _M_size(), _M_stride(), _M_index() {}
127 {
return --_M_count; }
132 template<
typename _Tp>
friend class valarray;
137 {
return _M_index ? _M_index->_M_start : 0; }
151 : _M_index(new
gslice::_Indexer()) {}
156 : _M_index(new
gslice::_Indexer(__o, __l, __s)) {}
160 : _M_index(__g._M_index)
161 {
if (_M_index) _M_index->_M_increment_use(); }
166 if (_M_index && _M_index->_M_decrement_use() == 0)
174 __g._M_index->_M_increment_use();
175 if (_M_index && _M_index->_M_decrement_use() == 0)
177 _M_index = __g._M_index;
183 _GLIBCXX_END_NAMESPACE_VERSION
valarray< size_t > size() const
Return array of sizes of slice dimensions.
gslice & operator=(const gslice &)
Assignment operator.
size_t start() const
Return array offset of first slice element.
valarray< size_t > stride() const
Return array of array strides for each dimension.
gslice()
Construct an empty slice.
Class defining multi-dimensional subset of an array.