cpp_templates_helper.h 905 Bytes
Newer Older
Robert Bradshaw's avatar
Robert Bradshaw committed
1 2 3 4
template <class T>
class Wrap {
    T value;
public:
5
    Wrap(T v) : value(v) { }
Robert Bradshaw's avatar
Robert Bradshaw committed
6 7 8 9 10 11 12 13 14 15
    void set(T v) { value = v; }
    T get(void) { return value; }
    bool operator==(Wrap<T> other) { return value == other.value; }
};

template <class T1, class T2>
class Pair {
    T1 _first;
    T2 _second;
public:
16
    Pair() { }
Robert Bradshaw's avatar
Robert Bradshaw committed
17 18 19 20 21 22
    Pair(T1 u, T2 v) { _first = u; _second = v; }
    T1 first(void) { return _first; }
    T2 second(void) { return _second; }
    bool operator==(Pair<T1,T2> other) { return _first == other._first && _second == other._second; }
    bool operator!=(Pair<T1,T2> other) { return _first != other._first || _second != other._second; }
};
23 24 25 26 27 28 29 30 31 32

template <class T1, class T2>
class SuperClass {
public:
    SuperClass() {}
};

template <class T2, class T3>
class SubClass : public SuperClass<T2, T3> {
};
33 34 35 36 37 38

template <class T>
class Div {
public:
    static T half(T value) { return value / 2; }
};