Developer documentation

Seq.hpp File Reference
#include <string.h>
#include <vector>
#include <algorithm>
#include <realroot/parser.hpp>
#include <realroot/shared_object.hpp>
#include <realroot/assign.hpp>
#include <realroot/array.hpp>

Go to the source code of this file.

Classes

struct  mmx::Seq< C, R >
 Sequence of terms with reference counter. More...
 
struct  mmx::Seq< C, R >
 Sequence of terms with reference counter. More...
 
struct  MmxForeachContainerBase
 
class  MmxForeachContainer< T >
 

Namespaces

 mmx
 
 mmx::let
 Namespace for explicit type conversion.
 

Macros

#define MMX_FOREACH(variable, container)
 
#define foreach   MMX_FOREACH
 

Functions

template<class C >
std::ostream & mmx::operator<< (std::ostream &os, const std::vector< C > &V)
 
template<class C , class R , class X , class S >
void mmx::let::assign (Seq< C, R > &r, const Seq< X, S > &x)
 
template<class C , class R , class S >
void mmx::let::assign (Seq< C, R > &r, const Seq< C, S > &x)
 
template<class C , class R >
const Cmmx::read (const Seq< C, R > &m, unsigned i)
 
template<class C , class R >
bool mmx::eq (const Seq< C, R > &v1, const Seq< C, R > &v2)
 
template<class C , class R >
bool mmx::neq (const Seq< C, R > &v1, const Seq< C, R > &v2)
 
template<class C , class R >
unsigned mmx::hash (const Seq< C, R > &v)
 
template<class C , class R >
unsigned mmx::soft_hash (const Seq< C, R > &m)
 
template<class C , class R >
Seq< C, R >::const_iterator mmx::iterate (const Seq< C, R > &m)
 
template<class C , class R >
Seq< C, R > & mmx::operator<< (Seq< C, R > &r, const C &x)
 
template<class C , class R >
bool mmx::operator== (const Seq< C, R > &a, const Seq< C, R > &b)
 
template<class C , class R >
bool mmx::operator!= (const Seq< C, R > &a, const Seq< C, R > &b)
 
template<class C , class R >
std::ostream & mmx::operator<< (std::ostream &os, const Seq< C, R > &s)
 Output operator. More...
 
template<class C , class R >
std::istream & mmx::operator>> (std::istream &is, Seq< C, R > &V)
 
template<class C , class R >
Seq< C, R > mmx::operator+ (Seq< C, R > a, const Seq< C, R > &b)
 
template<class C , class R >
Seq< C, R > mmx::adds (Seq< C, R > a, const Seq< C, R > &b)
 
template<class C , class R >
Seq< C, R > mmx::mul (C b, Seq< C, R > a)
 
template<class C , class R >
Seq< C, R > mmx::operator/ (Seq< C, R > a, const C b)
 
template<typename T >
T * mmxForeachpointer (const T &)
 
template<typename T >
MmxForeachContainer< T > mmxForeachContainerNew (const T &t)
 
template<typename T >
const MmxForeachContainer< T > * mmxForeachContainer (const MmxForeachContainerBase *base, const T *)
 

Macro Definition Documentation

#define foreach   MMX_FOREACH
#define MMX_FOREACH (   variable,
  container 
)
Value:
if(0) {} else for (const MmxForeachContainerBase & _container_ = mmxForeachContainerNew(container); \
mmxForeachContainer(&_container_, true ? 0 : mmxForeachpointer(container))->condition(); \
++mmxForeachContainer(&_container_, true ? 0 : mmxForeachpointer(container))->i) \
for (variable = *mmxForeachContainer(&_container_, true ? 0 : mmxForeachpointer(container))->i; \
mmxForeachContainer(&_container_, true ? 0 : mmxForeachpointer(container))->brk; \
--mmxForeachContainer(&_container_, true ? 0 : mmxForeachpointer(container))->brk)
T * mmxForeachpointer(const T &)
Definition: Seq.hpp:396
const MmxForeachContainer< T > * mmxForeachContainer(const MmxForeachContainerBase *base, const T *)
Definition: Seq.hpp:406
Definition: Seq.hpp:382
MmxForeachContainer< T > mmxForeachContainerNew(const T &t)
Definition: Seq.hpp:402

Function Documentation

template<typename T >
const MmxForeachContainer<T>* mmxForeachContainer ( const MmxForeachContainerBase base,
const T *   
)
inline
template<typename T >
MmxForeachContainer<T> mmxForeachContainerNew ( const T &  t)
inline
template<typename T >
T* mmxForeachpointer ( const T &  )
inline
Home