operators.h 1.42 KB
Newer Older
thomas.forbriger's avatar
thomas.forbriger committed
1
2
3
4
5
/*! \file operators.h
 * \brief provide operators for iteratable objects (prototypes)
 * 
 * ----------------------------------------------------------------------------
 * 
thomas.forbriger's avatar
thomas.forbriger committed
6
 * $Id: operators.h,v 1.2 2004-02-10 09:57:20 tforb Exp $
thomas.forbriger's avatar
thomas.forbriger committed
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 * \author Thomas Forbriger
 * \date 10/02/2004
 * 
 * provide operators for iteratable objects (prototypes)
 * 
 * Copyright (c) 2004 by Thomas Forbriger (BFO Schiltach) 
 * 
 * REVISIONS and CHANGES 
 *  - 10/02/2004   V1.0   Thomas Forbriger
 * 
 * ============================================================================
 */

// include guard
thomas.forbriger's avatar
thomas.forbriger committed
21
22
23
#ifndef AFF_OPERATORS_CLASS
#error "never ever inlcude this from your code"
#endif
thomas.forbriger's avatar
thomas.forbriger committed
24

thomas.forbriger's avatar
thomas.forbriger committed
25
#include<aff/iterator.h>
thomas.forbriger's avatar
thomas.forbriger committed
26

thomas.forbriger's avatar
thomas.forbriger committed
27
namespace aff {
thomas.forbriger's avatar
thomas.forbriger committed
28

thomas.forbriger's avatar
thomas.forbriger committed
29
30
31
32
33
34
35
36
37
38
  template<class T>
  AFF_OPERATORS_CLASS<T> operator*(const AFF_OPERATORS_CLASS<T>& c,
                                const typename AFF_OPERATORS_CLASS<T>::Tvalue& v)
  {
    typename AFF_OPERATORS_CLASS<T> retval(c.copyout());
    for (aff::Iterator<AFF_OPERATORS_CLASS<T> > i(retval);
         i.valid(); ++i)
    { (*i) *= v; }
    return(retval);
  }
thomas.forbriger's avatar
thomas.forbriger committed
39

thomas.forbriger's avatar
thomas.forbriger committed
40
41
42
43
44
45
46
47
48
49
50
  template<class T>
  AFF_OPERATORS_CLASS<T> operator*=(AFF_OPERATORS_CLASS<T>& c,
                                const typename AFF_OPERATORS_CLASS<T>::Tvalue& v)
  {
    typename AFF_OPERATORS_CLASS<T> retval(c);
    for (aff::Iterator<AFF_OPERATORS_CLASS<T> > i(retval);
         i.valid(); ++i)
    { (*i) *= v; }
    return(retval);
  }
}
thomas.forbriger's avatar
thomas.forbriger committed
51
52

/* ----- END OF operators.h ----- */