Commit Graph

6633 Commits

Author SHA1 Message Date
Behdad Esfahbod 8ac64d0090 [iter] Fix sorted_iter iter class 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 93615b9598 [iter/meta] Add hb_is_sorted_iterator() 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 92f25db1e8 [iter] Remove stale comment 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 40c24fd4a6 [iter] Port Coverage towards iter_t instead of array_t specifics 2019-01-20 20:12:12 -05:00
Behdad Esfahbod d552b6818c [meta] Move typename around
We'll see if bots like.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod f64ea8fc65 [meta] Move code around 2019-01-20 20:12:12 -05:00
Behdad Esfahbod aa2ab4f061 [iter] WHitespace 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 851fbb23ea [iter] Port Coverage::serialize to hb_is_iterator 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 06a44e2e53 [iter/meta] Match hb_is_iterator<> using SFINAE
By specifying Item type, which is desirable.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod bcb913efb4 Minor 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 859a880b08 [iter] Add back operator +
Too ugly to remove..
2019-01-20 20:12:12 -05:00
Behdad Esfahbod 076faf7c18 [iter] Disable operator +
To see if it makes bots happy... This is frustrating.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod a46874f1ab [iter] Revert back uses of C++11 auto type deduction 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 0828db8444 [iter] Rename 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 037f735efd [iter] Remove friend operator +, hoping to fix some bots 2019-01-20 20:12:12 -05:00
Behdad Esfahbod cb27918d0a Use Null() instead of declval(), hoping to fix some bots 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 3d22900f62 [meta] Don't use template default arguments for functions
That's a C++11 extension apparently...
2019-01-20 20:12:12 -05:00
Behdad Esfahbod b89d20dd9f [meta] Fix unused-function-template warning 2019-01-20 20:12:12 -05:00
Behdad Esfahbod df138da2e6 [iter/meta] Implement is_iterator
Removes use of auto type deduction again, which was not supported on many bots.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod 8570da1d74 [meta] Minor 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 442f4a5891 [meta] Move more code here 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 8c6cbbdfa3 [iter/meta] Add hb_is_iterable 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 576d5e2420 Don't use delegating constructors
Not all C++11 features are created equal when it comes to support...
2019-01-20 20:12:12 -05:00
Behdad Esfahbod e32bf39766 [meta] Add enable_if 2019-01-20 20:12:12 -05:00
Behdad Esfahbod e76a3cae0f Add hb-meta.hh for meta-programming 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 5ec11ce13a [iter] Clarify readonly vs lvalue iterators
lvalue iterators must declare __item_type__ as a reference.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod 2cbf5bf3a9 [iter] Test OT::Coverage iter 2019-01-20 20:12:12 -05:00
Behdad Esfahbod fd75d29f0f [iter] Streamline vector iterators 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 570473a345 [iter] Make hb_sorted_array_t work as iter
Ugly, but does the job.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod d6024794fb Change hb_void_t implementation 2019-01-20 20:12:12 -05:00
Behdad Esfahbod cde31988c2 [iter] Mark Coverage iterator sorted 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 49161d411f [subset] Take iterator in ArrayOf serialize
Still not satisfied with how I can enforce iterators only, but
seems to work for now.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod e16884248f [iter] Port Coverage iterator to hb_iter_t 2019-01-20 20:12:12 -05:00
Behdad Esfahbod c68bca0f95 Add hb_pair_t<> and hb_pair() 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 8303a9b011 [Coverage] Ensure increasing coverage in iteration 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 50cd26d394 [Coverage] Mark iterator methods const 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 9df1a6eba7 [iter] Use operator bool in a few places 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 7788ac14a4 [iter] Remove redundant methods 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 3dea9affda [iter] Test default-constructability 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 743ff09368 [iter] Implement friend opeator + (int, iter) 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 6dc4a1c9b1 [iter] Remove const_iter 2019-01-20 20:12:12 -05:00
Behdad Esfahbod f2b56af3ef [iter] Remove hack for older compilers 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 2ea79e0340 [iter] Minor 2019-01-20 20:12:12 -05:00
Behdad Esfahbod fb053b6333 [iter] Rename random_access() to constexpr is_random_access() 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 2790aad28c [iter] Add operator -> 2019-01-20 20:12:12 -05:00
Behdad Esfahbod d3976b7e63 [iter] Make them work, mostly 2019-01-20 20:12:12 -05:00
Behdad Esfahbod 959bb58bdd [vector] Add iterator 2019-01-20 20:12:12 -05:00
Behdad Esfahbod dd7c628ed1 Use enum for class constant 2019-01-20 19:51:08 -05:00
Behdad Esfahbod cf7edf52c3 [CFF] Use enum for tableTag 2019-01-20 19:49:59 -05:00
Behdad Esfahbod bd1318b8cc Use static constexpr for large class constants 2019-01-20 19:47:52 -05:00