SliceRange Class Reference

Represents a Python slice object (usual syntax: array[start:stop:step]). More...

#include <Slice.h>

Inheritance diagram for SliceRange:
SliceItem

Public Member Functions

 SliceRange (int64_t start, int64_t stop, int64_t step)
 Creates a SliceRange from a full set of parameters. More...
 
int64_t start () const
 The inclusive starting position. More...
 
int64_t stop () const
 The exclusive stopping position. More...
 
int64_t step () const
 The step size, which may be negative but must not be zero. More...
 
bool hasstart () const
 Returns true if start is not Slice::none; false otherwise. More...
 
bool hasstop () const
 Returns true if stop is not Slice::none; false otherwise. More...
 
const SliceItemPtr shallow_copy () const override
 Copies this node without copying any associated arrays. More...
 
const std::string tostring () const override
 Returns a string representation of this slice item (single-line custom format). More...
 
bool preserves_type (const Index64 &advanced) const override
 Returns true if this slice would preserve an array's slice and therefore should pass on Content::parameters. More...
 
virtual bool referentially_equal (const SliceItemPtr &other) const override
 Returns true if this slice item has all the same buffers and parameters as other; false otherwise. More...
 
- Public Member Functions inherited from SliceItem
virtual ~SliceItem ()
 Virtual destructor acts as a first non-inline virtual function that determines a specific translation unit in which vtable shall be emitted. More...
 

Detailed Description

Represents a Python slice object (usual syntax: array[start:stop:step]).

Constructor & Destructor Documentation

◆ SliceRange()

SliceRange ( int64_t  start,
int64_t  stop,
int64_t  step 
)

Creates a SliceRange from a full set of parameters.

Parameters
startThe inclusive starting position.
stopThe exclusive stopping position.
stepThe step size, which may be negative but must not be zero.

Any start, stop, or step may be Slice::none. Appropriate values are derived from an array's length the same way they are in Python.

Member Function Documentation

◆ hasstart()

bool hasstart ( ) const

Returns true if start is not Slice::none; false otherwise.

◆ hasstop()

bool hasstop ( ) const

Returns true if stop is not Slice::none; false otherwise.

◆ preserves_type()

bool preserves_type ( const Index64 advanced) const
overridevirtual

Returns true if this slice would preserve an array's slice and therefore should pass on Content::parameters.

Parameters
advancedThe index that is passed through Content::getitem_next.

Always true for SliceRange.

Implements SliceItem.

◆ referentially_equal()

virtual bool referentially_equal ( const SliceItemPtr other) const
overridevirtual

Returns true if this slice item has all the same buffers and parameters as other; false otherwise.

Parameters
otherThe slice item to compare this with.

Implements SliceItem.

◆ shallow_copy()

const SliceItemPtr shallow_copy ( ) const
overridevirtual

Copies this node without copying any associated arrays.

Implements SliceItem.

◆ start()

int64_t start ( ) const

The inclusive starting position.

This value may be Slice::none; if so, the value used would be derived from an array's length the same way they are in Python.

◆ step()

int64_t step ( ) const

The step size, which may be negative but must not be zero.

This value may be Slice::none; if so, the value used would be derived from an array's length the same way they are in Python.

◆ stop()

int64_t stop ( ) const

The exclusive stopping position.

This value may be Slice::none; if so, the value used would be derived from an array's length the same way they are in Python.

◆ tostring()

const std::string tostring ( ) const
overridevirtual

Returns a string representation of this slice item (single-line custom format).

Implements SliceItem.


The documentation for this class was generated from the following file: