diff --git a/src/Makefile.sources b/src/Makefile.sources index 0da4abe05..b5a3c4cce 100644 --- a/src/Makefile.sources +++ b/src/Makefile.sources @@ -41,6 +41,7 @@ HB_BASE_sources = \ hb-machinery.hh \ hb-map.cc \ hb-map.hh \ + hb-meta.hh \ hb-mutex.hh \ hb-null.hh \ hb-object.hh \ diff --git a/src/hb-dsalgs.hh b/src/hb-dsalgs.hh index 42fd7040f..32f86bdde 100644 --- a/src/hb-dsalgs.hh +++ b/src/hb-dsalgs.hh @@ -31,10 +31,6 @@ #include "hb-null.hh" -/* Void! For when we need a expression-type of void. */ -struct hb_void_t { typedef void value; }; - - /* * Pair */ diff --git a/src/hb-iter.hh b/src/hb-iter.hh index 6b49f803c..548bc1178 100644 --- a/src/hb-iter.hh +++ b/src/hb-iter.hh @@ -29,6 +29,7 @@ #include "hb.hh" #include "hb-dsalgs.hh" // for hb_addressof +#include "hb-meta.hh" #include "hb-null.hh" diff --git a/src/hb-meta.hh b/src/hb-meta.hh new file mode 100644 index 000000000..6285d3966 --- /dev/null +++ b/src/hb-meta.hh @@ -0,0 +1,40 @@ +/* + * Copyright © 2018 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Behdad Esfahbod + */ + +#ifndef HB_META_HH +#define HB_META_HH + +#include "hb.hh" + + +/* Void! For when we need a expression-type of void. */ +struct hb_void_t { typedef void value; }; + +struct hb_true_t { enum { value = true }; }; +struct hb_false_t { enum { value = false }; }; + + +#endif /* HB_META_HH */ diff --git a/src/hb.hh b/src/hb.hh index 46ffa5815..7f716269c 100644 --- a/src/hb.hh +++ b/src/hb.hh @@ -628,10 +628,11 @@ template struct hb_remove_pointer { typedef T value; }; * They express dependency amongst themselves, but no other file should include * them directly.*/ #include "hb-atomic.hh" +#include "hb-meta.hh" #include "hb-mutex.hh" #include "hb-null.hh" #include "hb-dsalgs.hh" // Requires: hb-null -#include "hb-iter.hh" // Requires: hb-dsalgs hb-null +#include "hb-iter.hh" // Requires: hb-dsalgs hb-meta hb-null #include "hb-debug.hh" // Requires: hb-atomic hb-dsalgs #include "hb-array.hh" // Requires: hb-dsalgs hb-iter hb-null #include "hb-vector.hh" // Requires: hb-array hb-null