FougTools  0.7.0dev-046fb6a
Handy tools for C++, Qt and OpenCascade
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Typedefs | Functions
cpp Namespace Reference

Classes

class  BasicSharedPointer
 Provides basic sharing of a pointer. More...
 
class  EnumStringMap
 Provides mapping between a C++ enum type values and C strings. More...
 
class  FixedArray
 Provides a generic fixed-size array of items. More...
 
struct  hash_fnv_1a
 
struct  hash_fnv_1a_traits
 
struct  hash_fnv_1a_traits< 32 >
 
struct  hash_fnv_1a_traits< 64 >
 
struct  NumericTraits
 
class  push_iterator
 
class  Quantity
 Represents an amount of a certain unit. More...
 
class  ScopedValue
 
class  TreeBfsExplorer
 

Typedefs

typedef hash_fnv_1a< 32 > hash32_fnv_1a
 
typedef hash_fnv_1a< 64 > hash64_fnv_1a
 
typedef NumericTraits< double > DoubleNumericTraits
 
typedef NumericTraits< float > FloatNumericTraits
 
typedef NumericTraits< int > IntNumericTraits
 
typedef ScopedValue< bool > ScopedBool
 

Functions

template<typename T >
bool boolXor (T lhs, T rhs)
 Returns "eXclusive OR" evaluation of expressions in lhs and rhs. More...
 
template<typename T >
bool boolImplies (T lhs, T rhs)
 Returns "boolean implies" evaluation of expressions in lhs and rhs. More...
 
template<typename T , std::size_t N>
std::size_t cArraySize (const T(&)[N])
 
template<typename T , std::size_t N>
T * cArrayEnd (T(&array)[N])
 
template<typename T , std::size_t N>
const T * cArrayEnd (const T(&array)[N])
 
template<typename BI_ITERATOR >
BI_ITERATOR circularNext (BI_ITERATOR iBegin, BI_ITERATOR iEnd, BI_ITERATOR iCurr)
 Iterator next to iCurr bounded between iBegin and iEnd. More...
 
template<typename BI_ITERATOR >
BI_ITERATOR circularPrior (BI_ITERATOR iBegin, BI_ITERATOR iEnd, BI_ITERATOR iCurr)
 Iterator prior to iCurr bounded between iBegin and iEnd. More...
 
template<typename BI_ITERATOR , typename DISTANCE >
BI_ITERATOR circularAdvance (BI_ITERATOR iBegin, BI_ITERATOR iEnd, BI_ITERATOR iCurr, DISTANCE d)
 Iterator advanced by d bounded between iBegin and iEnd. More...
 
template<typename TEXT_STREAM , typename T , unsigned S>
TEXT_STREAM & operator<< (TEXT_STREAM &os, const FixedArray< T, S > &coords)
 
template<typename T >
std::size_t scalarAddress (const T *pointer)
 
template<typename T >
void checkedReset (T *&pointer)
 
template<typename T >
void checkedAssign (T *pointer, T value)
 
template<typename CALL_VALUE_TYPE , typename VALUE_TYPE , typename CLASS >
void checkedAssign (VALUE_TYPE CLASS::*attrMember, CLASS *object, CALL_VALUE_TYPE value)
 
template<typename T >
T * newObject ()
 
template<typename T , typename ARG >
T * newObject (ARG arg)
 
template<typename CONTAINER >
push_iterator< CONTAINER > pusher (CONTAINER &x)
 Constructs a push_iterator that pushes new elements into x. More...
 
template<typename NUMERIC_TRAITS , typename TRAIT >
bool operator< (const Quantity< NUMERIC_TRAITS, TRAIT > &lhs, const Quantity< NUMERIC_TRAITS, TRAIT > &rhs)
 
template<typename NUMERIC_TRAITS , typename TRAIT >
bool operator> (const Quantity< NUMERIC_TRAITS, TRAIT > &lhs, const Quantity< NUMERIC_TRAITS, TRAIT > &rhs)
 
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity< NUMERIC_TRAITS,
TRAIT > 
operator+ (const Quantity< NUMERIC_TRAITS, TRAIT > &lhs, const Quantity< NUMERIC_TRAITS, TRAIT > &rhs)
 
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity< NUMERIC_TRAITS,
TRAIT > 
operator+ (const Quantity< NUMERIC_TRAITS, TRAIT > &lhs, typename NUMERIC_TRAITS::Type k)
 
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity< NUMERIC_TRAITS,
TRAIT > 
operator+ (typename NUMERIC_TRAITS::Type k, const Quantity< NUMERIC_TRAITS, TRAIT > &rhs)
 
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity< NUMERIC_TRAITS,
TRAIT > 
operator- (const Quantity< NUMERIC_TRAITS, TRAIT > &lhs, const Quantity< NUMERIC_TRAITS, TRAIT > &rhs)
 
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity< NUMERIC_TRAITS,
TRAIT > 
operator- (const Quantity< NUMERIC_TRAITS, TRAIT > &lhs, typename NUMERIC_TRAITS::Type k)
 
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity< NUMERIC_TRAITS,
TRAIT > 
operator- (typename NUMERIC_TRAITS::Type k, const Quantity< NUMERIC_TRAITS, TRAIT > &rhs)
 
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity< NUMERIC_TRAITS,
TRAIT > 
operator* (const Quantity< NUMERIC_TRAITS, TRAIT > &lhs, const Quantity< NUMERIC_TRAITS, TRAIT > &rhs)
 
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity< NUMERIC_TRAITS,
TRAIT > 
operator* (const Quantity< NUMERIC_TRAITS, TRAIT > &lhs, typename NUMERIC_TRAITS::Type k)
 
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity< NUMERIC_TRAITS,
TRAIT > 
operator* (typename NUMERIC_TRAITS::Type k, const Quantity< NUMERIC_TRAITS, TRAIT > &rhs)
 
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity< NUMERIC_TRAITS,
TRAIT > 
operator/ (const Quantity< NUMERIC_TRAITS, TRAIT > &lhs, const Quantity< NUMERIC_TRAITS, TRAIT > &rhs)
 
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity< NUMERIC_TRAITS,
TRAIT > 
operator/ (const Quantity< NUMERIC_TRAITS, TRAIT > &lhs, typename NUMERIC_TRAITS::Type k)
 
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity< NUMERIC_TRAITS,
TRAIT > 
operator/ (typename NUMERIC_TRAITS::Type k, const Quantity< NUMERIC_TRAITS, TRAIT > &rhs)
 
template<typename TUPLE , typename FUNC >
void tuple_for_each (const TUPLE &t, FUNC f)
 
template<typename TUPLE , typename FUNC >
void tuple_reversed_for_each (const TUPLE &t, FUNC f)
 

Typedef Documentation

Function Documentation

template<typename T >
bool cpp::boolImplies ( lhs,
rhs 
)

Returns "boolean implies" evaluation of expressions in lhs and rhs.

template<typename T >
bool cpp::boolXor ( lhs,
rhs 
)

Returns "eXclusive OR" evaluation of expressions in lhs and rhs.

template<typename T , std::size_t N>
T* cpp::cArrayEnd ( T(&)  array[N])

Returns an iterator pointing to the end of C array

Example : "char str[128]" -> str + 128

template<typename T , std::size_t N>
const T* cpp::cArrayEnd ( const T(&)  array[N])

Returns a const iterator pointing to the end of C array

Example : "char str[128]" -> str + 128

template<typename T , std::size_t N>
std::size_t cpp::cArraySize ( const   T(&)[N])

Returns the item count in a C array (eg. "char str[128]" -> 128)

template<typename T >
void cpp::checkedAssign ( T *  pointer,
value 
)

Assigns value at memory in pointer if valid (ie. non-NULL)

template<typename CALL_VALUE_TYPE , typename VALUE_TYPE , typename CLASS >
void cpp::checkedAssign ( VALUE_TYPE CLASS::*  attrMember,
CLASS *  object,
CALL_VALUE_TYPE  value 
)

Assigns value to object member attribute attrMember if valid (ie. non-NULL)

template<typename T >
void cpp::checkedReset ( T *&  pointer)

Frees memory in pointer, and sets pointer to NULL

template<typename BI_ITERATOR , typename DISTANCE >
BI_ITERATOR cpp::circularAdvance ( BI_ITERATOR  iBegin,
BI_ITERATOR  iEnd,
BI_ITERATOR  iCurr,
DISTANCE  d 
)

Iterator advanced by d bounded between iBegin and iEnd.

Todo:
Improve performance (direct calculation instead of a for loop)
template<typename BI_ITERATOR >
BI_ITERATOR cpp::circularNext ( BI_ITERATOR  iBegin,
BI_ITERATOR  iEnd,
BI_ITERATOR  iCurr 
)

Iterator next to iCurr bounded between iBegin and iEnd.

Return values
++iCurrwhen iCurr != iEnd
iBeginwhen iCurr == iEnd
template<typename BI_ITERATOR >
BI_ITERATOR cpp::circularPrior ( BI_ITERATOR  iBegin,
BI_ITERATOR  iEnd,
BI_ITERATOR  iCurr 
)

Iterator prior to iCurr bounded between iBegin and iEnd.

Return values
&ndash;iCurrwhen iCurr != iBegin
iEndwhen iCurr == iBegin
template<typename T >
T* cpp::newObject ( )

Returns a heap-allocated instance of T, created with the default constructor

Template Parameters
TMust be default constructible (see http://www.sgi.com/tech/stl/DefaultConstructible.html)
template<typename T , typename ARG >
T* cpp::newObject ( ARG  arg)
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity<NUMERIC_TRAITS, TRAIT> cpp::operator* ( const Quantity< NUMERIC_TRAITS, TRAIT > &  lhs,
const Quantity< NUMERIC_TRAITS, TRAIT > &  rhs 
)
related
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity<NUMERIC_TRAITS, TRAIT> cpp::operator* ( const Quantity< NUMERIC_TRAITS, TRAIT > &  lhs,
typename NUMERIC_TRAITS::Type  k 
)
related
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity<NUMERIC_TRAITS, TRAIT> cpp::operator* ( typename NUMERIC_TRAITS::Type  k,
const Quantity< NUMERIC_TRAITS, TRAIT > &  rhs 
)
related
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity<NUMERIC_TRAITS, TRAIT> cpp::operator+ ( const Quantity< NUMERIC_TRAITS, TRAIT > &  lhs,
const Quantity< NUMERIC_TRAITS, TRAIT > &  rhs 
)
related
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity<NUMERIC_TRAITS, TRAIT> cpp::operator+ ( const Quantity< NUMERIC_TRAITS, TRAIT > &  lhs,
typename NUMERIC_TRAITS::Type  k 
)
related
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity<NUMERIC_TRAITS, TRAIT> cpp::operator+ ( typename NUMERIC_TRAITS::Type  k,
const Quantity< NUMERIC_TRAITS, TRAIT > &  rhs 
)
related
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity<NUMERIC_TRAITS, TRAIT> cpp::operator- ( const Quantity< NUMERIC_TRAITS, TRAIT > &  lhs,
const Quantity< NUMERIC_TRAITS, TRAIT > &  rhs 
)
related
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity<NUMERIC_TRAITS, TRAIT> cpp::operator- ( const Quantity< NUMERIC_TRAITS, TRAIT > &  lhs,
typename NUMERIC_TRAITS::Type  k 
)
related
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity<NUMERIC_TRAITS, TRAIT> cpp::operator- ( typename NUMERIC_TRAITS::Type  k,
const Quantity< NUMERIC_TRAITS, TRAIT > &  rhs 
)
related
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity<NUMERIC_TRAITS, TRAIT> cpp::operator/ ( const Quantity< NUMERIC_TRAITS, TRAIT > &  lhs,
const Quantity< NUMERIC_TRAITS, TRAIT > &  rhs 
)
related
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity<NUMERIC_TRAITS, TRAIT> cpp::operator/ ( const Quantity< NUMERIC_TRAITS, TRAIT > &  lhs,
typename NUMERIC_TRAITS::Type  k 
)
related
template<typename NUMERIC_TRAITS , typename TRAIT >
const Quantity<NUMERIC_TRAITS, TRAIT> cpp::operator/ ( typename NUMERIC_TRAITS::Type  k,
const Quantity< NUMERIC_TRAITS, TRAIT > &  rhs 
)
related
template<typename NUMERIC_TRAITS , typename TRAIT >
bool cpp::operator< ( const Quantity< NUMERIC_TRAITS, TRAIT > &  lhs,
const Quantity< NUMERIC_TRAITS, TRAIT > &  rhs 
)
related
template<typename TEXT_STREAM , typename T , unsigned S>
TEXT_STREAM& cpp::operator<< ( TEXT_STREAM &  os,
const FixedArray< T, S > &  coords 
)
related
template<typename NUMERIC_TRAITS , typename TRAIT >
bool cpp::operator> ( const Quantity< NUMERIC_TRAITS, TRAIT > &  lhs,
const Quantity< NUMERIC_TRAITS, TRAIT > &  rhs 
)
related
template<typename CONTAINER >
push_iterator<CONTAINER> cpp::pusher ( CONTAINER &  x)

Constructs a push_iterator that pushes new elements into x.

Parameters
xContainer on which the iterator will push new elements.
Container should be a container class with member push() defined.
template<typename T >
std::size_t cpp::scalarAddress ( const T *  pointer)

Gives the address in pointer as a numeric(scalar) value

template<typename TUPLE , typename FUNC >
void cpp::tuple_for_each ( const TUPLE &  t,
FUNC  f 
)

Apply function f to each element in tuple t

template<typename TUPLE , typename FUNC >
void cpp::tuple_reversed_for_each ( const TUPLE &  t,
FUNC  f 
)

Apply function f to each element in tuple t starting from end