Commit Graph

119 Commits

Author SHA1 Message Date
644cae506f view: move alignment test for cast into the implementation
Moving the alignment test from SFINAE into the implementation as a
static_assert means that users don't need to include the implementation
for types where `cast` isn't called. Otherwise, iterator_traits requires
a definition to work with.
2019-05-15 13:03:38 +10:00
da6d5cb2a8 view: add ssize query 2019-05-12 07:53:08 +10:00
52467c056d view: add implicit bool operator for 'not empty' 2019-05-12 07:52:54 +10:00
2a9be46d54 view: add front and back observers 2019-02-08 11:59:24 +11:00
4a4d5f297a types/traits: use LessThanComparable more consistently 2019-02-03 17:28:53 +11:00
ddc24b076b view: avoid unsigned comparison warnings in split's assert 2019-02-03 12:29:49 +11:00
f1cf6933a9 view: add more assertions in slicing code 2019-02-03 11:37:03 +11:00
07c4715082 view: style 2019-01-29 21:30:29 +11:00
c24b0fd0f7 view: add validator specialisation 2019-01-29 21:21:18 +11:00
a94ca358a5 view: use a temporary buffer for cruft::read 2019-01-18 17:20:18 +11:00
b9c0716c66 view: use SFINAE to diable casts that can't be aligned 2019-01-18 17:19:39 +11:00
b0d29f94e9 view: add 'tail' query 2019-01-18 17:19:25 +11:00
e7ba296011 view: add assertion that orderable iterators are ordered 2019-01-18 17:19:10 +11:00
f648ad9810 view: allow multibyte targets for make_byte_view 2018-12-19 17:13:47 +11:00
fb7c989487 view: allow construction from anything that has begin/end 2018-12-19 17:12:28 +11:00
3925431838 view: add 'covers' test 2018-12-17 14:46:30 +11:00
60bd71a57b view: allow multibyte casts in make_byte_view 2018-12-17 14:45:09 +11:00
49b8594a73 view: add some brief explanatory comments 2018-12-16 16:25:04 +11:00
44760c6869 view: protect functions taking indices with enable_if 2018-12-16 13:26:13 +11:00
4b3b001d18 view: provide accessible typedefs for BeginT and EndT 2018-12-16 13:25:41 +11:00
07e66f20d3 view: allow longer words for byte views 2018-12-15 15:38:01 +11:00
888d88a74d view: return a pair in split
A pair documents the intention a lot more closely given we have an
explicit ordering of the two components.
2018-10-30 15:00:48 +11:00
383805af3a view: remove addition operators
The effect of these operators was never particularly clear. It's better
to remove them completely and replace them with explicit function calls.
2018-10-30 15:00:02 +11:00
c383f6579f view: prefer construction using explicit size over pointer arithmetic
This simplifies step through debugging on some containers.
2018-10-04 15:36:35 +10:00
fdbe909fb8 view: prefer construction using explicit size over pointer arithmetic
This simplifies step through debugging on some containers.
2018-10-04 14:52:35 +10:00
f6056153e3 rename root namespace from util to cruft
This places, at long last, the core library code into the same namespace
as the extended library code.
2018-08-05 14:42:02 +10:00
803acc9a87 relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
c6760c8566 view: don't over qualify the array deduction guide 2018-08-03 16:50:29 +10:00
0cea64fa14 view: disable trivally copyable type warnings in util::read 2018-08-02 00:51:01 +10:00
20df746217 view: don't enforce constness of view iterators in util::read 2018-08-01 20:58:43 +10:00
e92f0dc337 view: add 'read' operation complementing 'extract' 2018-08-01 14:23:09 +10:00
08d8eb942d view: add iterator intersection test 2018-08-01 13:10:43 +10:00
47c912e5e2 view: avoid alignment warnings for view extraction
It is assumed the user is on top of this.
2018-08-01 13:10:11 +10:00
4b9b292848 view: add more assertions for valid consume parameters 2018-08-01 13:09:32 +10:00
5724de752e view: add head/tail accessors that return truncated subviews 2018-08-01 13:09:15 +10:00
2c47a3654d view: add a method to extract type cast bytes from a view 2018-07-30 14:03:02 +10:00
ab495bb0f7 view: reduce ambiguity in make_byte_view 2018-07-30 13:52:25 +10:00
d2b36ebded view: parameterise make_byte_view 2018-07-27 18:28:56 +10:00
f42ae40fcb view: allow arbitrary index types for slice and consume 2018-07-24 15:49:38 +10:00
00651cab7c view: correct constness of make_byte_view 2018-07-18 15:20:42 +10:00
80bc988466 view: add deductions for u32 and u64 2018-07-18 15:20:30 +10:00
493c91eace view: add nodiscard to constant split operations
Any time we have a constant operator we need to warn the user if they
thing the operation is mutating and does not make use of the result.
2018-07-13 14:05:54 +10:00
ad90e10c5d view: remove unnecessary enable_if type 2018-05-10 13:31:51 +10:00
df3a556867 view: add convenience wrappers for addition operators 2018-05-10 12:54:45 +10:00
2c919a6582 view: use alignment cast for casting 2018-05-10 12:54:45 +10:00
ec44c68ce6 view: require fully named types for casting 2018-05-10 12:54:45 +10:00
29702704fb view: improve template deduction guides 2018-05-10 12:48:20 +10:00
4116442e40 debug: don't rely on format for output
debug is relied upon by a great deal of other units so it's very
difficult to include other popular headers like format.hpp without
triggering cyclic dependencies.
2018-05-10 12:44:03 +10:00
2926776c97 view: use universal references for return types
Reduces the possibility that we dereference a temporary from the
internal iterators.
2018-05-08 21:51:09 +10:00
34fc834a29 view: prefer std::next over std::advance
next is slightly less likely to trigger issues dereferencing a temporary
(since we aren't producing an lvalue).
2018-05-08 21:49:27 +10:00