ccgsl 2.7.2
C++wrappersforGnuScientificLibrary
gsl::block_short Class Reference

This class handles vector_shorts as shared handles. More...

#include <block_short.hpp>

Collaboration diagram for gsl::block_short:
Collaboration graph

Classes

class  const_iterator_t
 A class template for the const iterators. More...
 
class  iterator_base
 The container must have iterator types. More...
 
class  iterator_t
 A class template for the two non-const iterators. More...
 

Public Types

typedef short value_type
 A container must have a value_type. More...
 
typedef value_typereference
 A container must have a reference type. More...
 
typedef value_type const & const_reference
 A container must have a constant reference type. More...
 
typedef value_typepointer
 A container must have a pointer type. More...
 
typedef value_type const * const_pointer
 A container must have a constant pointer type. More...
 
typedef const_iterator_t< false > const_iterator
 The const_iterator type. More...
 
typedef iterator_t< false > iterator
 The iterator type. More...
 
typedef const_iterator_t< true > const_reverse_iterator
 The const_reverse_iterator type. More...
 
typedef iterator_t< true > reverse_iterator
 The reverse_iterator type. More...
 
typedef const_iterator::difference_type difference_type
 A container must have a difference_type. More...
 
typedef size_t size_type
 A container must have a size_type. More...
 

Public Member Functions

 block_short ()
 The default constructor is only really useful for assigning to. More...
 
 block_short (size_t const n)
 The default constructor creates a new block_short with n elements. More...
 
 block_short (gsl_block_short *v)
 Could construct from a gsl_block_short. More...
 
 block_short (std::initializer_list< short > initializer_list)
 Could construct from a std::initializer_list in C++11. More...
 
 block_short (block_short const &v)
 The copy constructor. More...
 
block_shortoperator= (block_short const &v)
 The assignment operator. More...
 
block_short clone () const
 The clone function. More...
 
 ~block_short ()
 The destructor only deletes the pointers if count reaches zero. More...
 
void reset ()
 Stop sharing ownership of the shared pointer. More...
 
 block_short (block_short &&v)
 Move constructor. More...
 
block_shortoperator= (block_short &&v)
 Move operator. More...
 
bool operator== (block_short const &v) const
 Two block_short objects are identically equal if their elements are identical. More...
 
bool operator!= (block_short const &v) const
 Two block_short objects are different equal if their elements are not identical. More...
 
bool operator< (block_short const &v) const
 A container needs to define an ordering for sorting. More...
 
bool operator> (block_short const &v) const
 A container needs to define an ordering for sorting. More...
 
bool operator<= (block_short const &v) const
 A container needs to define an ordering for sorting. More...
 
bool operator>= (block_short const &v) const
 A container needs to define an ordering for sorting. More...
 
iterator begin ()
 Get iterator pointing to first block_short element. More...
 
const_iterator begin () const
 Get iterator pointing to first block_short element. More...
 
iterator end ()
 Get iterator pointing beyond last block_short element. More...
 
const_iterator end () const
 Get iterator pointing beyond last block_short element. More...
 
size_type size () const
 The size (number of elements) of the block_short. More...
 
short * data ()
 Give access to the data block_short. More...
 
short const * data () const
 Give access to the data block_short. More...
 
size_type max_size () const
 The max size (number of elements) of the block_short. More...
 
bool empty () const
 Find if the block_short is empty. More...
 
void swap (block_short &v)
 Swap two block_short objects. More...
 
reverse_iterator rbegin ()
 Get iterator pointing to first block_short element. More...
 
const_reverse_iterator rbegin () const
 Get iterator pointing to first block_short element. More...
 
reverse_iterator rend ()
 Get iterator pointing beyond last block_short element. More...
 
const_reverse_iterator rend () const
 Get iterator pointing beyond last block_short element. More...
 
short & operator[] (size_t const n)
 Get element at position n by reference ([] operator). More...
 
short const & operator[] (size_t const n) const
 Get element at position n by reference ([] operator). More...
 
gsl_block_short * get () const
 Get the gsl_block_short. More...
 
bool unique () const
 Find if this is the only object sharing the gsl_block_short. More...
 
size_t use_count () const
 Find how many block_short objects share this pointer. More...
 
 operator bool () const
 Allow conversion to bool. More...
 

Private Attributes

gsl_block_short * ccgsl_pointer
 The shared pointer. More...
 
size_t * count
 The shared reference count. More...
 

Detailed Description

This class handles vector_shorts as shared handles.

It models a random access container so that STL functions work with block_short.

Definition at line 41 of file block_short.hpp.

Member Typedef Documentation

◆ const_iterator

The const_iterator type.

Definition at line 982 of file block_short.hpp.

◆ const_pointer

A container must have a constant pointer type.

Definition at line 314 of file block_short.hpp.

◆ const_reference

A container must have a constant reference type.

Definition at line 304 of file block_short.hpp.

◆ const_reverse_iterator

The const_reverse_iterator type.

Definition at line 990 of file block_short.hpp.

◆ difference_type

A container must have a difference_type.

Definition at line 999 of file block_short.hpp.

◆ iterator

The iterator type.

Definition at line 986 of file block_short.hpp.

◆ pointer

A container must have a pointer type.

Definition at line 309 of file block_short.hpp.

◆ reference

A container must have a reference type.

Definition at line 299 of file block_short.hpp.

◆ reverse_iterator

The reverse_iterator type.

Definition at line 994 of file block_short.hpp.

◆ size_type

A container must have a size_type.

Definition at line 1004 of file block_short.hpp.

◆ value_type

A container must have a value_type.

Definition at line 294 of file block_short.hpp.

Constructor & Destructor Documentation

◆ block_short() [1/6]

gsl::block_short::block_short ( )
inline

The default constructor is only really useful for assigning to.

Definition at line 46 of file block_short.hpp.

References ccgsl_pointer, and count.

Referenced by operator=(), and reset().

◆ block_short() [2/6]

gsl::block_short::block_short ( size_t const  n)
inlineexplicit

The default constructor creates a new block_short with n elements.

Parameters
nThe number of elements in the block_short

Definition at line 56 of file block_short.hpp.

References ccgsl_pointer, count, and gsl::rstat::n().

◆ block_short() [3/6]

gsl::block_short::block_short ( gsl_block_short *  v)
inlineexplicit

Could construct from a gsl_block_short.

This is not usually a good idea. In this case you should not use gsl_block_short_free() to deallocate the memory.

Parameters
vThe block_short

Definition at line 78 of file block_short.hpp.

References ccgsl_pointer, and count.

◆ block_short() [4/6]

gsl::block_short::block_short ( std::initializer_list< short >  initializer_list)
inline

Could construct from a std::initializer_list in C++11.

Parameters
initializer_listThe initializer_list.

Definition at line 89 of file block_short.hpp.

References begin(), ccgsl_pointer, count, and gsl::rstat::n().

◆ block_short() [5/6]

gsl::block_short::block_short ( block_short const &  v)
inline

The copy constructor.

This shares the block_short. Use clone() if you want a full copy.

Parameters
vThe block_short to copy.

Definition at line 110 of file block_short.hpp.

References count.

◆ ~block_short()

gsl::block_short::~block_short ( )
inline

The destructor only deletes the pointers if count reaches zero.

Definition at line 149 of file block_short.hpp.

References ccgsl_pointer, and count.

◆ block_short() [6/6]

gsl::block_short::block_short ( block_short &&  v)
inline

Move constructor.

Parameters
vThe block_short to move.

Definition at line 167 of file block_short.hpp.

References count.

Member Function Documentation

◆ begin() [1/2]

iterator gsl::block_short::begin ( )
inline

Get iterator pointing to first block_short element.

Returns
iterator pointing to first block_short element

Definition at line 1010 of file block_short.hpp.

Referenced by block_short().

◆ begin() [2/2]

const_iterator gsl::block_short::begin ( ) const
inline

Get iterator pointing to first block_short element.

Returns
iterator pointing to first block_short element

Definition at line 1017 of file block_short.hpp.

◆ clone()

block_short gsl::block_short::clone ( ) const
inline

The clone function.

Use this if you want a copy of the block_short that does not share the underlying data.

Returns
a new copy of this.

Definition at line 138 of file block_short.hpp.

References ccgsl_pointer.

◆ data() [1/2]

short * gsl::block_short::data ( )
inline

Give access to the data block_short.

The data() and size() functions mimic the functions of std::array<T> and std::vector<T>.

Returns
The data block_short.

Definition at line 1048 of file block_short.hpp.

References ccgsl_pointer.

◆ data() [2/2]

short const * gsl::block_short::data ( ) const
inline

Give access to the data block_short.

The data() and size() functions mimic the functions of std::array<T> and std::vector<T>.

Returns
The data block_short.

Definition at line 1056 of file block_short.hpp.

References ccgsl_pointer.

◆ empty()

bool gsl::block_short::empty ( ) const
inline

Find if the block_short is empty.

Returns
true if has size zero; otherwise false

Definition at line 1071 of file block_short.hpp.

References ccgsl_pointer.

◆ end() [1/2]

iterator gsl::block_short::end ( )
inline

Get iterator pointing beyond last block_short element.

Returns
iterator pointing beyond last block_short element

Definition at line 1025 of file block_short.hpp.

References ccgsl_pointer, and size().

◆ end() [2/2]

const_iterator gsl::block_short::end ( ) const
inline

Get iterator pointing beyond last block_short element.

Returns
iterator pointing beyond last block_short element

Definition at line 1033 of file block_short.hpp.

References ccgsl_pointer, and size().

◆ get()

gsl_block_short * gsl::block_short::get ( ) const
inline

Get the gsl_block_short.

Returns
the gsl_block_short

Definition at line 1177 of file block_short.hpp.

References ccgsl_pointer.

◆ max_size()

size_type gsl::block_short::max_size ( ) const
inline

The max size (number of elements) of the block_short.

Identical to size but required for a container.

Returns
The size of the block_short

Definition at line 1065 of file block_short.hpp.

References ccgsl_pointer.

◆ operator bool()

gsl::block_short::operator bool ( ) const
inlineexplicit

Allow conversion to bool.

Returns
true or false according as this contains a pointer to a gsl_block_short

Definition at line 1197 of file block_short.hpp.

References ccgsl_pointer.

◆ operator!=()

bool gsl::block_short::operator!= ( block_short const &  v) const
inline

Two block_short objects are different equal if their elements are not identical.

Parameters
vThe block_short to be compared with this
Returns
false or true according as this and v have identical elements or not

Definition at line 208 of file block_short.hpp.

References operator==().

◆ operator<()

bool gsl::block_short::operator< ( block_short const &  v) const
inline

A container needs to define an ordering for sorting.

This uses standard lexicographical ordering and so is not useful, for example, for checking, that a block_short is nonnegative.

Parameters
vThe block_short to be compared with this
Returns
false or true according as this is less than v lexicographically

Definition at line 220 of file block_short.hpp.

References ccgsl_pointer, gsl::movstat::min(), and size().

Referenced by operator<=().

◆ operator<=()

bool gsl::block_short::operator<= ( block_short const &  v) const
inline

A container needs to define an ordering for sorting.

This uses standard lexicographical ordering and so is not useful, for example, for checking, that a block_short is nonnegative.

Parameters
vThe block_short to be compared with this
Returns
false or true according as this is less than or equal to v lexicographically

Definition at line 274 of file block_short.hpp.

References operator<(), and operator==().

◆ operator=() [1/2]

block_short & gsl::block_short::operator= ( block_short &&  v)
inline

Move operator.

Parameters
vThe block_short to move.
Returns
A reference to this.

Definition at line 176 of file block_short.hpp.

References block_short().

◆ operator=() [2/2]

block_short & gsl::block_short::operator= ( block_short const &  v)
inline

The assignment operator.

This makes a shared copy.

Parameters
vThe block_short to copy

Definition at line 118 of file block_short.hpp.

References ccgsl_pointer, and count.

◆ operator==()

bool gsl::block_short::operator== ( block_short const &  v) const
inline

Two block_short objects are identically equal if their elements are identical.

Parameters
vThe block_short to be compared with this
Returns
true or false according as this and v have identical elements or not

Definition at line 189 of file block_short.hpp.

References ccgsl_pointer.

Referenced by operator!=(), operator<=(), and operator>=().

◆ operator>()

bool gsl::block_short::operator> ( block_short const &  v) const
inline

A container needs to define an ordering for sorting.

This uses standard lexicographical ordering and so is not useful, for example, for checking, that a block_short is nonnegative.

Parameters
vThe block_short to be compared with this
Returns
false or true according as this is greater than v lexicographically

Definition at line 247 of file block_short.hpp.

References ccgsl_pointer, gsl::movstat::min(), and size().

Referenced by operator>=().

◆ operator>=()

bool gsl::block_short::operator>= ( block_short const &  v) const
inline

A container needs to define an ordering for sorting.

This uses standard lexicographical ordering and so is not useful, for example, for checking, that a block_short is nonnegative.

Parameters
vThe block_short to be compared with this
Returns
false or true according as this is no less than v lexicographically

Definition at line 286 of file block_short.hpp.

References operator==(), and operator>().

◆ operator[]() [1/2]

short & gsl::block_short::operator[] ( size_t const  n)
inline

Get element at position n by reference ([] operator).

Parameters
nThe position of the element
Returns
a reference to a short

Definition at line 1121 of file block_short.hpp.

References ccgsl_pointer, gsl::exception::GSL_EFAULT, gsl::exception::GSL_EINVAL, gsl::rstat::n(), and size().

◆ operator[]() [2/2]

short const & gsl::block_short::operator[] ( size_t const  n) const
inline

Get element at position n by reference ([] operator).

Parameters
nThe position of the element
Returns
a reference to a short

Definition at line 1144 of file block_short.hpp.

References ccgsl_pointer, gsl::exception::GSL_EFAULT, gsl::exception::GSL_EINVAL, gsl::rstat::n(), and size().

◆ rbegin() [1/2]

reverse_iterator gsl::block_short::rbegin ( )
inline

Get iterator pointing to first block_short element.

Returns
iterator pointing to first block_short element

Definition at line 1088 of file block_short.hpp.

References ccgsl_pointer, and size().

◆ rbegin() [2/2]

const_reverse_iterator gsl::block_short::rbegin ( ) const
inline

Get iterator pointing to first block_short element.

Returns
iterator pointing to first block_short element

Definition at line 1096 of file block_short.hpp.

References ccgsl_pointer, and size().

◆ rend() [1/2]

reverse_iterator gsl::block_short::rend ( )
inline

Get iterator pointing beyond last block_short element.

Returns
iterator pointing beyond last block_short element

Definition at line 1105 of file block_short.hpp.

◆ rend() [2/2]

const_reverse_iterator gsl::block_short::rend ( ) const
inline

Get iterator pointing beyond last block_short element.

Returns
iterator pointing beyond last block_short element

Definition at line 1112 of file block_short.hpp.

◆ reset()

void gsl::block_short::reset ( )
inline

Stop sharing ownership of the shared pointer.

Definition at line 161 of file block_short.hpp.

References block_short().

◆ size()

size_type gsl::block_short::size ( ) const
inline

The size (number of elements) of the block_short.

Returns
The size of the block_short

Definition at line 1042 of file block_short.hpp.

References ccgsl_pointer.

Referenced by end(), operator<(), operator>(), operator[](), and rbegin().

◆ swap()

void gsl::block_short::swap ( block_short v)
inline

Swap two block_short objects.

This works even if the block_short objects have different sizes because it swaps pointers.

Parameters
vThe block_short to swap with this.

Definition at line 1078 of file block_short.hpp.

References ccgsl_pointer, and count.

◆ unique()

bool gsl::block_short::unique ( ) const
inline

Find if this is the only object sharing the gsl_block_short.

Returns
true or falses according as this is the only block_short object sharing the gsl_block_short

Definition at line 1183 of file block_short.hpp.

References count.

◆ use_count()

size_t gsl::block_short::use_count ( ) const
inline

Find how many block_short objects share this pointer.

Returns
the number of block_short objects that share this pointer

Definition at line 1188 of file block_short.hpp.

References count.

Member Data Documentation

◆ ccgsl_pointer

◆ count

size_t* gsl::block_short::count
private

The shared reference count.

Definition at line 1170 of file block_short.hpp.

Referenced by block_short(), operator=(), swap(), unique(), use_count(), and ~block_short().


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