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

This class handles vector_floats as shared handles. More...

#include <block_float.hpp>

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

Private Attributes

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

Detailed Description

This class handles vector_floats as shared handles.

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

Definition at line 41 of file block_float.hpp.

Member Typedef Documentation

◆ const_iterator

The const_iterator type.

Definition at line 982 of file block_float.hpp.

◆ const_pointer

A container must have a constant pointer type.

Definition at line 314 of file block_float.hpp.

◆ const_reference

A container must have a constant reference type.

Definition at line 304 of file block_float.hpp.

◆ const_reverse_iterator

The const_reverse_iterator type.

Definition at line 990 of file block_float.hpp.

◆ difference_type

A container must have a difference_type.

Definition at line 999 of file block_float.hpp.

◆ iterator

The iterator type.

Definition at line 986 of file block_float.hpp.

◆ pointer

A container must have a pointer type.

Definition at line 309 of file block_float.hpp.

◆ reference

A container must have a reference type.

Definition at line 299 of file block_float.hpp.

◆ reverse_iterator

The reverse_iterator type.

Definition at line 994 of file block_float.hpp.

◆ size_type

A container must have a size_type.

Definition at line 1004 of file block_float.hpp.

◆ value_type

A container must have a value_type.

Definition at line 294 of file block_float.hpp.

Constructor & Destructor Documentation

◆ block_float() [1/6]

gsl::block_float::block_float ( )
inline

The default constructor is only really useful for assigning to.

Definition at line 46 of file block_float.hpp.

References ccgsl_pointer, and count.

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

◆ block_float() [2/6]

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

The default constructor creates a new block_float with n elements.

Parameters
nThe number of elements in the block_float

Definition at line 56 of file block_float.hpp.

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

◆ block_float() [3/6]

gsl::block_float::block_float ( gsl_block_float *  v)
inlineexplicit

Could construct from a gsl_block_float.

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

Parameters
vThe block_float

Definition at line 78 of file block_float.hpp.

References ccgsl_pointer, and count.

◆ block_float() [4/6]

gsl::block_float::block_float ( std::initializer_list< float >  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_float.hpp.

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

◆ block_float() [5/6]

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

The copy constructor.

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

Parameters
vThe block_float to copy.

Definition at line 110 of file block_float.hpp.

References count.

◆ ~block_float()

gsl::block_float::~block_float ( )
inline

The destructor only deletes the pointers if count reaches zero.

Definition at line 149 of file block_float.hpp.

References ccgsl_pointer, and count.

◆ block_float() [6/6]

gsl::block_float::block_float ( block_float &&  v)
inline

Move constructor.

Parameters
vThe block_float to move.

Definition at line 167 of file block_float.hpp.

References count.

Member Function Documentation

◆ begin() [1/2]

iterator gsl::block_float::begin ( )
inline

Get iterator pointing to first block_float element.

Returns
iterator pointing to first block_float element

Definition at line 1010 of file block_float.hpp.

Referenced by block_float().

◆ begin() [2/2]

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

Get iterator pointing to first block_float element.

Returns
iterator pointing to first block_float element

Definition at line 1017 of file block_float.hpp.

◆ clone()

block_float gsl::block_float::clone ( ) const
inline

The clone function.

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

Returns
a new copy of this.

Definition at line 138 of file block_float.hpp.

References ccgsl_pointer.

◆ data() [1/2]

float * gsl::block_float::data ( )
inline

Give access to the data block_float.

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

Returns
The data block_float.

Definition at line 1048 of file block_float.hpp.

References ccgsl_pointer.

◆ data() [2/2]

float const * gsl::block_float::data ( ) const
inline

Give access to the data block_float.

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

Returns
The data block_float.

Definition at line 1056 of file block_float.hpp.

References ccgsl_pointer.

◆ empty()

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

Find if the block_float is empty.

Returns
true if has size zero; otherwise false

Definition at line 1071 of file block_float.hpp.

References ccgsl_pointer.

◆ end() [1/2]

iterator gsl::block_float::end ( )
inline

Get iterator pointing beyond last block_float element.

Returns
iterator pointing beyond last block_float element

Definition at line 1025 of file block_float.hpp.

References ccgsl_pointer, and size().

◆ end() [2/2]

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

Get iterator pointing beyond last block_float element.

Returns
iterator pointing beyond last block_float element

Definition at line 1033 of file block_float.hpp.

References ccgsl_pointer, and size().

◆ get()

gsl_block_float * gsl::block_float::get ( ) const
inline

Get the gsl_block_float.

Returns
the gsl_block_float

Definition at line 1177 of file block_float.hpp.

References ccgsl_pointer.

◆ max_size()

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

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

Identical to size but required for a container.

Returns
The size of the block_float

Definition at line 1065 of file block_float.hpp.

References ccgsl_pointer.

◆ operator bool()

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

Allow conversion to bool.

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

Definition at line 1197 of file block_float.hpp.

References ccgsl_pointer.

◆ operator!=()

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

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

Parameters
vThe block_float 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_float.hpp.

References operator==().

◆ operator<()

bool gsl::block_float::operator< ( block_float 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_float is nonnegative.

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

Definition at line 220 of file block_float.hpp.

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

Referenced by operator<=().

◆ operator<=()

bool gsl::block_float::operator<= ( block_float 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_float is nonnegative.

Parameters
vThe block_float 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_float.hpp.

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

◆ operator=() [1/2]

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

Move operator.

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

Definition at line 176 of file block_float.hpp.

References block_float().

◆ operator=() [2/2]

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

The assignment operator.

This makes a shared copy.

Parameters
vThe block_float to copy

Definition at line 118 of file block_float.hpp.

References ccgsl_pointer, and count.

◆ operator==()

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

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

Parameters
vThe block_float 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_float.hpp.

References ccgsl_pointer.

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

◆ operator>()

bool gsl::block_float::operator> ( block_float 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_float is nonnegative.

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

Definition at line 247 of file block_float.hpp.

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

Referenced by operator>=().

◆ operator>=()

bool gsl::block_float::operator>= ( block_float 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_float is nonnegative.

Parameters
vThe block_float 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_float.hpp.

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

◆ operator[]() [1/2]

float & gsl::block_float::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 float

Definition at line 1121 of file block_float.hpp.

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

◆ operator[]() [2/2]

float const & gsl::block_float::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 float

Definition at line 1144 of file block_float.hpp.

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

◆ rbegin() [1/2]

reverse_iterator gsl::block_float::rbegin ( )
inline

Get iterator pointing to first block_float element.

Returns
iterator pointing to first block_float element

Definition at line 1088 of file block_float.hpp.

References ccgsl_pointer, and size().

◆ rbegin() [2/2]

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

Get iterator pointing to first block_float element.

Returns
iterator pointing to first block_float element

Definition at line 1096 of file block_float.hpp.

References ccgsl_pointer, and size().

◆ rend() [1/2]

reverse_iterator gsl::block_float::rend ( )
inline

Get iterator pointing beyond last block_float element.

Returns
iterator pointing beyond last block_float element

Definition at line 1105 of file block_float.hpp.

◆ rend() [2/2]

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

Get iterator pointing beyond last block_float element.

Returns
iterator pointing beyond last block_float element

Definition at line 1112 of file block_float.hpp.

◆ reset()

void gsl::block_float::reset ( )
inline

Stop sharing ownership of the shared pointer.

Definition at line 161 of file block_float.hpp.

References block_float().

◆ size()

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

The size (number of elements) of the block_float.

Returns
The size of the block_float

Definition at line 1042 of file block_float.hpp.

References ccgsl_pointer.

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

◆ swap()

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

Swap two block_float objects.

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

Parameters
vThe block_float to swap with this.

Definition at line 1078 of file block_float.hpp.

References ccgsl_pointer, and count.

◆ unique()

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

Find if this is the only object sharing the gsl_block_float.

Returns
true or falses according as this is the only block_float object sharing the gsl_block_float

Definition at line 1183 of file block_float.hpp.

References count.

◆ use_count()

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

Find how many block_float objects share this pointer.

Returns
the number of block_float objects that share this pointer

Definition at line 1188 of file block_float.hpp.

References count.

Member Data Documentation

◆ ccgsl_pointer

◆ count

size_t* gsl::block_float::count
private

The shared reference count.

Definition at line 1170 of file block_float.hpp.

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


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