tuple.h revision 5a931dcbd585584fed4990ae6cd1717a3918f90a
/*
* Inkscape::Util::Tuple - generic tuple type
*
* Authors:
* MenTaLguY <mental@rydia.net>
*
* Copyright (C) 2004 MenTaLguY
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
#ifndef SEEN_INKSCAPE_UTIL_TUPLE_H
#define SEEN_INKSCAPE_UTIL_TUPLE_H
#include "util/reference.h"
struct Tuple {
Tuple() {}
A a;
B b;
C c;
D d;
E e;
F f;
};
struct Tuple<A, B, C, D, E, void> {
Tuple() {}
A a;
B b;
C c;
D d;
E e;
};
struct Tuple<A, B, C, D, void, void> {
Tuple() {}
A a;
B b;
C c;
D d;
};
struct Tuple<A, B, C, void, void, void> {
Tuple() {}
A a;
B b;
C c;
};
struct Tuple<A, B, void, void, void, void> {
Tuple() {}
A a;
B b;
};
struct Tuple<A, void, void, void, void, void> {
Tuple() {}
: a(a_) {}
A a;
};
inline Tuple<A, B, C, D, E, F>
{
return Tuple<A, B, C, D, E, F>(a, b, c, d, e, f);
}
inline Tuple<A, B, C, D, E>
{
return Tuple<A, B, C, D, E>(a, b, c, d, e);
}
inline Tuple<A, B, C, D>
{
return Tuple<A, B, C, D>(a, b, c, d);
}
inline Tuple<A, B, C>
{
return Tuple<A, B, C>(a, b, c);
}
inline Tuple<A, B>
{
return Tuple<A, B>(a, b);
}
inline Tuple<A>
return Tuple<A>(a);
}
}
}
#endif
/*
Local Variables:
mode:c++
c-file-style:"stroustrup"
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
indent-tabs-mode:nil
fill-column:99
End:
*/
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :