X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Finclude%2Ftuple.hh;h=d9f51886253969ad4ba29dc587560ffbd14796ca;hb=3af0951f9a11677240efa6228683dd4fcea13eaf;hp=1adf194f1a90377a6ab4070963c13b089e200dd0;hpb=568c43c935ce3958d9de8b3b2970bb06be8c3bae;p=lilypond.git diff --git a/flower/include/tuple.hh b/flower/include/tuple.hh index 1adf194f1a..d9f5188625 100644 --- a/flower/include/tuple.hh +++ b/flower/include/tuple.hh @@ -1,34 +1,71 @@ -/* - tuple.hh -- declare Tuple - - source file of the GNU LilyPond music typesetter - - (c) 1999 Han-Wen Nienhuys - - */ +/* + This file is part of LilyPond, the GNU music typesetter. -#ifndef TUPLET_HH -#define TUPLET_HH -#error + Copyright (C) 2006--2015 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -template + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . +*/ + +#ifndef TUPLE_HH +#define TUPLE_HH + +template struct Tuple { - T e1_; - U e2_; - - Tuple (T t, U u) - { - e1_ = t; - e2_ = u; - } + T t_array[N]; Tuple () - { - } + { + } + + Tuple (T const *src) + { + for (int i = 0; i < N; i++) + t_array[i] = src[i]; + } }; +template +struct Tuple2 : public Tuple +{ + Tuple2 () + { + + } + + Tuple2 (K a, K b) + { + Tuple *p (this); // ugr. + + p->t_array[0] = a; + p->t_array[1] = b; + } +}; +template +inline bool +operator <(Tuple const &t1, + Tuple const &t2) +{ + for (int i = 0; i < N; i++) + { + if (t1.t_array[i] > t2.t_array[i]) + return false; + if (t1.t_array[i] < t2.t_array[i]) + return true; + } -#endif /* TUPLET_HH */ + return false; +} +#endif /* TUPLE_HH */