Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

SVectorRef Class Reference

#include <svector.hpp>

Inheritance diagram for SVectorRef:

Inheritance graph
[legend]
Collaboration diagram for SVectorRef:

Collaboration graph
[legend]
List of all members.

Detailed Description

SExpressionVector reference.

This class allows to easily handle S-expressions of the Vector type. What it really does is making sure it always points to an SExpressionVector object and providing some vector-specific operations.

Warning:
Please be aware that objects of this class do not assume 'ownership' over the referenced S-vectors; that is, making a copy of the SVectorRef object doesn't make a copy of the vector; the SExpressionVector object is shared between two SVectorRef objects. You might want to use SVector class instead of this one if you need a heterogenous container which duplicates the underlying vector on copyings and assignments.

Definition at line 108 of file svector.hpp.

Public Member Functions

 SVectorRef ()
 Default constructor.
 SVectorRef (int n)
 Raw vector creation constructor.
 SVectorRef (SExpressionVector *ts)
 'Take care' constructor
 SVectorRef (const SVectorRef &other)
 Copy constructor.
 SVectorRef (const SReference &other)
 Cast from SReference.
 SVectorRef (SReference &ref, int fake)
 Strange constructor.
 ~SVectorRef ()
 The destructor.
const SReferenceoperator[] (int index) const
 The index operator.
SReferenceoperator[] (int index)
 The index operator.
Tp * GetPtr () const
 Get the appropriately typed pointer to the referenced object.
Tp & operator * () const
 Dereference (returns a reference to the pointe object).
Tp * operator-> () const
 Select a field/method of the referenced object.
SReferenceAddAnotherItemToList (const SReference &right)
 Add item to list.
SReferenceChangeListEnd (const SReference &new_last)
 Make/change dotted list.
SReference MakeCons (const SReference &right) const
 Make a cons.
SReferenceoperator, (const SReference &r)
 List composing operation.
SReferenceoperator|| (const SReference &t)
 dotted list composing operation
SReference operator^ (const SReference &t) const
 CONS operation.
bool operator== (const SReference &other) const
 Equality is just pointer comparision.
bool operator== (const SExpression *other) const
 Equality is just pointer comparision.
bool operator!= (const SReference &other) const
 Non-equality is just pointer comparision.
bool operator!= (const SExpression *other) const
 Non-equality is just pointer comparision.
bool IsEql (const SReference &other) const
bool IsEqual (const SReference &other) const
SReferenceCar () const
SReferenceCdr () const
SReferenceCCar () const
SReferenceCCdr () const
intelib_float_t GetFloat () const
intelib_integer_t GetInt () const
const char * GetString () const
char GetSingleChar () const
template<class Tp>
Tp * DynamicCastGetPtr () const
template<class Tp>
Tp * SimpleCastGetPtr () const
SReference Clone () const
SReference CopyList () const
SReference CopyTree () const
bool IsEmptyList () const


Constructor & Destructor Documentation

SVectorRef::SVectorRef  ) 
 

Default constructor.

Makes an unbound reference (surprize!)

Definition at line 112 of file svector.hpp.

Referenced by SMatrixRef< 2 >::operator[](), and SMatrixRef< dim >::operator[]().

SVectorRef::SVectorRef int  n  )  [explicit]
 

Raw vector creation constructor.

New vector is created.

n is the vector's length; it is passed to the
SExpressionVector's constructor.
Note:
The constructor is made explicit because vector of N elements has nothing to do with the integer N, that is, such a cast would be absolute nonsense.

Definition at line 122 of file svector.hpp.

SVectorRef::SVectorRef SExpressionVector ts  ) 
 

'Take care' constructor

Definition at line 125 of file svector.hpp.

SVectorRef::SVectorRef const SVectorRef other  ) 
 

Copy constructor.

Warning:
The underlying vector is NOT copied

Definition at line 129 of file svector.hpp.

SVectorRef::SVectorRef const SReference other  ) 
 

Cast from SReference.

If the argument doesn't reference to an SExpressionVector object, exception is thrown. Be careful!

Definition at line 135 of file svector.hpp.

SVectorRef::SVectorRef SReference ref,
int  fake
 

Strange constructor.

This form is used by SMatrix to allocate vectors as needed into empty slots.

Parameters:
ref is the slot to be allocated. It must either reference an SExpressionVector or be a null reference. In the former case a new SExpressionVector will be allocated, thus the ref'erenced object will change!
fake is unused. It is only to tell this form from the SVectorRef(const SReference &ref).

Definition at line 146 of file svector.cpp.

References GenericSReference< Tp, X_wrongtype >::GetPtr().

SVectorRef::~SVectorRef  ) 
 

The destructor.

Definition at line 150 of file svector.hpp.


Member Function Documentation

const SReference& SVectorRef::operator[] int  index  )  const
 

The index operator.

Definition at line 153 of file svector.hpp.

References GenericSReference< Tp, X_wrongtype >::GetPtr().

SReference& SVectorRef::operator[] int  index  ) 
 

The index operator.

Reimplemented in SMatrixRef< dim >, and SMatrixRef< 2 >.

Definition at line 157 of file svector.hpp.

References GenericSReference< Tp, X_wrongtype >::GetPtr().

template<class Tp, class X_wrongtype>
Tp* GenericSReference< Tp, X_wrongtype >::GetPtr  )  const [inherited]
 

Get the appropriately typed pointer to the referenced object.

Reimplemented from SReference.

Definition at line 65 of file gensref.hpp.

Referenced by SString::c_str(), SExpressionHashPackage::FindSymbol(), SchExpressionContext::GetAllSymbols(), LExpressionContext::GetAllSymbols(), SchExpressionContext::GetBinding(), LExpressionContext::GetBinding(), LExpressionContext::GetFunBinding(), GenericSReference< LExpressionContext, IntelibX_lisp_not_a_context >::operator *(), SStreamTextInput::operator->(), GenericSReference< LExpressionContext, IntelibX_lisp_not_a_context >::operator->(), operator[](), SVectorRef(), and SExpressionVector::TextRepresentation().

template<class Tp, class X_wrongtype>
Tp& GenericSReference< Tp, X_wrongtype >::operator *  )  const [inherited]
 

Dereference (returns a reference to the pointe object).

Reimplemented from GenericReference< SExpression >.

Definition at line 69 of file gensref.hpp.

template<class Tp, class X_wrongtype>
Tp* GenericSReference< Tp, X_wrongtype >::operator->  )  const [inherited]
 

Select a field/method of the referenced object.

Reimplemented from GenericReference< SExpression >.

Definition at line 71 of file gensref.hpp.

SReference& SReference::AddAnotherItemToList const SReference right  )  [inherited]
 

Add item to list.

For a list, adds another dotted pair to its end. For non-lists, the result is undefined.

Referenced by SReference::operator,().

SReference& SReference::ChangeListEnd const SReference new_last  )  [inherited]
 

Make/change dotted list.

  • For a proper (non-dotted) list, replaces its terminating () with the given argument, therefore producing a dotted list.
    • for a dotted list, changes it's terminating value (the value which is after the dot)
    • for other types, the result is undefined

Referenced by SReference::operator||().

SReference SReference::MakeCons const SReference right  )  const [inherited]
 

Make a cons.

Produces a cons (dotted pair) using *this as the CAR and the given argument as the CDR

Referenced by SReference::operator^().

SReference& SReference::operator, const SReference r  )  [inherited]
 

List composing operation.

Operator "," is used to construct lists naturally, like this: (L| 1, 2, 3)

See also:
LListConstructor class

Reimplemented in SBacklinkRef, SDoubleListRef, LReference, and SchReference.

Definition at line 541 of file sexpress.hpp.

References SReference::AddAnotherItemToList().

Referenced by SchReference::operator,(), and LReference::operator,().

SReference& SReference::operator|| const SReference t  )  [inherited]
 

dotted list composing operation

Operator "||" is used to construct dotted lists, like this: ((L| 1, 2, 3) || 4) // (1 2 3 . 4)

See also:
LListConstructor class

Reimplemented in LReference, and SchReference.

Definition at line 548 of file sexpress.hpp.

References SReference::ChangeListEnd().

Referenced by SchReference::operator||(), and LReference::operator||().

SReference SReference::operator^ const SReference t  )  const [inherited]
 

CONS operation.

Operator "^" is used to produce conses

Definition at line 552 of file sexpress.hpp.

References SReference::MakeCons().

bool SReference::operator== const SReference other  )  const [inherited]
 

Equality is just pointer comparision.

Definition at line 556 of file sexpress.hpp.

References SReference::GetPtr().

bool SReference::operator== const SExpression other  )  const [inherited]
 

Equality is just pointer comparision.

Definition at line 562 of file sexpress.hpp.

References SReference::GetPtr().

bool SReference::operator!= const SReference other  )  const [inherited]
 

Non-equality is just pointer comparision.

Definition at line 559 of file sexpress.hpp.

References SReference::GetPtr().

bool SReference::operator!= const SExpression other  )  const [inherited]
 

Non-equality is just pointer comparision.

Definition at line 565 of file sexpress.hpp.

References SReference::GetPtr().

bool SReference::IsEql const SReference other  )  const [inherited]
 

Reimplemented in LReference, and SchReference.

Referenced by SExprsAreEql().

bool SReference::IsEqual const SReference other  )  const [inherited]
 

Reimplemented in LReference, and SchReference.

Referenced by SExprsAreEqual().

SReference& SReference::Car  )  const [inherited]
 

Referenced by LExpressionMacro::Call(), SDoubleListRange::Copy(), IntelibGenericReader::Get(), RetrieveFunctionObject(), and stack_representation().

SReference& SReference::Cdr  )  const [inherited]
 

Referenced by LExpressionMacro::Call(), SBacklinkRef::Remove(), SQueue::RemoveFirst(), RetrieveFunctionObject(), and stack_representation().

SReference& SReference::CCar  )  const [inherited]
 

SReference& SReference::CCdr  )  const [inherited]
 

intelib_float_t SReference::GetFloat  )  const [inherited]
 

Referenced by SExpressionIndirectTemplate< Tt >::Setf().

intelib_integer_t SReference::GetInt  )  const [inherited]
 

Referenced by SExpressionIndirectTemplate< Tt >::Setf().

const char* SReference::GetString  )  const [inherited]
 

Referenced by SExpressionIndirectTemplate< Tt >::Setf().

char SReference::GetSingleChar  )  const [inherited]
 

template<class Tp>
Tp * SReference::DynamicCastGetPtr  )  const [inherited]
 

Definition at line 687 of file sexpress.hpp.

References SReference::GetPtr(), IntelibTypeId::IsSubtypeOf(), and SExpression::TermType().

Referenced by LispLambdaBody::DoAnalyseLambdaList(), SExpressionBacklink::InsertAfter(), SBacklinkRef::operator,(), pretty_print(), IntelibGenericReader::Read(), SBacklinkRef::Remove(), SExpressionBacklink::RemoveNext(), RetrieveFunctionObject(), SQueue::SQueue(), and SExpressionBacklink::~SExpressionBacklink().

template<class Tp>
Tp * SReference::SimpleCastGetPtr  )  const [inherited]
 

Definition at line 695 of file sexpress.hpp.

References SReference::GetPtr(), and SExpression::TermType().

SReference SReference::Clone  )  const [inherited]
 

Referenced by SExpressionVector::Clone(), and SExpressionHashTable::Clone().

SReference SReference::CopyList  )  const [inherited]
 

SReference SReference::CopyTree  )  const [inherited]
 

bool SReference::IsEmptyList  )  const [inherited]
 

Referenced by SBacklinkRef::Begin(), LExpressionMacro::Call(), SExpressionBacklink::ConnectBack(), SDoubleListRange::Copy(), SBacklinkRef::End(), SExpressionDoubleList::Exclude(), SDoubleListRange::Exhausted(), SExpressionDoubleList::Iterator::Exhausted(), SDoubleListRange::GetLast(), SBacklinkRef::GetPtr(), SBacklinkRef::InsertAfter(), SExpressionDoubleList::InsertListAfter(), SExpressionDoubleList::Iterator::IsBegin(), SQueue::IsEmpty(), SExpressionDoubleList::Iterator::IsEnd(), SBacklinkRef::operator++(), SBacklinkRef::operator,(), SDoubleListRange::RightEndMover::operator--(), SDoubleListRange::LeftEndMover::operator--(), SBacklinkRef::operator--(), pretty_print(), SExpressionDoubleList::Iterator::Remove(), SBacklinkRef::Remove(), SExpressionBacklink::RemoveNext(), SQueue::SQueue(), stack_representation(), SchReference::TextRepresentation(), LReference::TextRepresentation(), and SExpressionBacklink::~SExpressionBacklink().


The documentation for this class was generated from the following files:
Generated on Tue Dec 18 00:43:00 2007 for InteLib by  doxygen 1.4.1