STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
indirect_array< _Ty > Class Template Reference

Public Types

typedef _Ty value_type
 

Public Member Functions

void operator= (const valarray< _Ty > &_Right) const
 
void operator= (const _Ty &_Right) const
 
void operator*= (const valarray< _Ty > &_Right) const
 
void operator/= (const valarray< _Ty > &_Right) const
 
void operator%= (const valarray< _Ty > &_Right) const
 
void operator+= (const valarray< _Ty > &_Right) const
 
void operator-= (const valarray< _Ty > &_Right) const
 
void operator^= (const valarray< _Ty > &_Right) const
 
void operator&= (const valarray< _Ty > &_Right) const
 
void operator|= (const valarray< _Ty > &_Right) const
 
void operator<<= (const valarray< _Ty > &_Right) const
 
void operator>>= (const valarray< _Ty > &_Right) const
 
_Ty & _Data (size_t _Idx) const
 
size_t _Indir (size_t _Idx) const
 
size_t _Totlen () const
 
 indirect_array ()=delete
 
 indirect_array (const indirect_array &)
 
indirect_arrayoperator= (const indirect_array &)
 

Private Member Functions

 indirect_array (const _Sizarray &_Indarr, _Ty *_Ptr)
 

Private Attributes

_Sizarray _Myindarr
 
_Ty * _Myptr
 

Friends

class valarray< _Ty >
 

Member Typedef Documentation

template<class _Ty >
typedef _Ty indirect_array< _Ty >::value_type

Constructor & Destructor Documentation

template<class _Ty >
indirect_array< _Ty >::indirect_array ( )
delete
template<class _Ty >
indirect_array< _Ty >::indirect_array ( const indirect_array< _Ty > &  )
template<class _Ty >
indirect_array< _Ty >::indirect_array ( const _Sizarray _Indarr,
_Ty *  _Ptr 
)
inlineprivate
1520  : _Myindarr(_Indarr), _Myptr(_Ptr)
1521  { // construct from indirect array and pointer to valarray contents
1522  }
_Ty * _Myptr
Definition: valarray:1525
_Sizarray _Myindarr
Definition: valarray:1524

Member Function Documentation

template<class _Ty >
_Ty& indirect_array< _Ty >::_Data ( size_t  _Idx) const
inline
1496  { // return reference to underlying array element
1497  return (_Myptr[_Idx]);
1498  }
_Ty * _Myptr
Definition: valarray:1525
template<class _Ty >
size_t indirect_array< _Ty >::_Indir ( size_t  _Idx) const
inline
1501  { // return mapped index for a given index
1502  return (_Myindarr[_Idx]);
1503  }
_Sizarray _Myindarr
Definition: valarray:1524
template<class _Ty >
size_t indirect_array< _Ty >::_Totlen ( ) const
inline
1506  { // return total length of indirect array
1507  return (_Myindarr.size());
1508  }
size_t size() const
Definition: valarray:312
_Sizarray _Myindarr
Definition: valarray:1524
template<class _Ty >
void indirect_array< _Ty >::operator%= ( const valarray< _Ty > &  _Right) const
inline
1456  { // remainder indirect array by valarray
1457  _IOP(%= _Right[_Idx]);
1458  }
#define _IOP(RHS)
Definition: valarray:1423
template<class _Ty >
void indirect_array< _Ty >::operator&= ( const valarray< _Ty > &  _Right) const
inline
1476  { // AND valarray into indirect array
1477  _IOP(&= _Right[_Idx]);
1478  }
#define _IOP(RHS)
Definition: valarray:1423
template<class _Ty >
void indirect_array< _Ty >::operator*= ( const valarray< _Ty > &  _Right) const
inline
1446  { // multiply indirect array by valarray
1447  _IOP(*= _Right[_Idx]);
1448  }
#define _IOP(RHS)
Definition: valarray:1423
template<class _Ty >
void indirect_array< _Ty >::operator+= ( const valarray< _Ty > &  _Right) const
inline
1461  { // add valarray to indirect array
1462  _IOP(+= _Right[_Idx]);
1463  }
#define _IOP(RHS)
Definition: valarray:1423
template<class _Ty >
void indirect_array< _Ty >::operator-= ( const valarray< _Ty > &  _Right) const
inline
1466  { // subtract valarray from indirect array
1467  _IOP(-= _Right[_Idx]);
1468  }
#define _IOP(RHS)
Definition: valarray:1423
template<class _Ty >
void indirect_array< _Ty >::operator/= ( const valarray< _Ty > &  _Right) const
inline
1451  { // divide indirect array by valarray
1452  _IOP(/= _Right[_Idx]);
1453  }
#define _IOP(RHS)
Definition: valarray:1423
template<class _Ty >
void indirect_array< _Ty >::operator<<= ( const valarray< _Ty > &  _Right) const
inline
1486  { // left shift indirect array by valarray
1487  _IOP(<<= _Right[_Idx]);
1488  }
#define _IOP(RHS)
Definition: valarray:1423
template<class _Ty >
void indirect_array< _Ty >::operator= ( const valarray< _Ty > &  _Right) const
inline
1436  { // assign a valarray to an indirect array
1437  _IOP(= _Right[_Idx]);
1438  }
#define _IOP(RHS)
Definition: valarray:1423
template<class _Ty >
void indirect_array< _Ty >::operator= ( const _Ty &  _Right) const
inline
1441  { // assign a scalar to elements of an indirect array
1442  _IOP(= _Right);
1443  }
#define _IOP(RHS)
Definition: valarray:1423
constexpr const _Ty &() _Right
Definition: algorithm:3591
template<class _Ty >
indirect_array& indirect_array< _Ty >::operator= ( const indirect_array< _Ty > &  )
template<class _Ty >
void indirect_array< _Ty >::operator>>= ( const valarray< _Ty > &  _Right) const
inline
1491  { // right shift indirect array by valarray
1492  _IOP(>>= _Right[_Idx]);
1493  }
#define _IOP(RHS)
Definition: valarray:1423
template<class _Ty >
void indirect_array< _Ty >::operator^= ( const valarray< _Ty > &  _Right) const
inline
1471  { // XOR valarray into indirect array
1472  _IOP(^= _Right[_Idx]);
1473  }
#define _IOP(RHS)
Definition: valarray:1423
template<class _Ty >
void indirect_array< _Ty >::operator|= ( const valarray< _Ty > &  _Right) const
inline
1481  { // OR valarray into indirect array
1482  _IOP(|= _Right[_Idx]);
1483  }
#define _IOP(RHS)
Definition: valarray:1423

Friends And Related Function Documentation

template<class _Ty >
friend class valarray< _Ty >
friend

Member Data Documentation

template<class _Ty >
_Sizarray indirect_array< _Ty >::_Myindarr
private
template<class _Ty >
_Ty* indirect_array< _Ty >::_Myptr
private

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