Commit Graph

3393 Commits

Author SHA1 Message Date
f34d5ce278 introspection: add test for template-template-type reflection 2020-02-27 07:05:57 +11:00
ec1f354d16 iterator/zip: avoid std::forward_as_tuple for zip value_type
This tends to result in references to temporaries higher up the stack
being returned. decltype on the iterator dereference is a more reliable
method to determine the return type.
2020-02-26 12:04:02 +11:00
f1aa7fa775 iterator/zip: rewrite for simplicity and forwarding support 2020-02-25 16:17:04 +11:00
58b42d5d9b iterator/iota: declare the iterator type first up
This means reduces the chances of mixing up inner/outer types, and
eliminates the use of the iterator typedef within teh container.
2020-02-25 16:15:45 +11:00
1e3c342482 functor: style 2020-02-25 16:15:21 +11:00
ebb99a6f4e tuple/value: map should return return a forwarding tuple
This allows us to maintain references, rather than provoke copies.
2020-02-25 12:02:53 +11:00
a25a16e00e tuple/value: style 2020-02-25 12:02:45 +11:00
eac5957f60 tuple/value: correct the test case values 2020-02-25 11:31:56 +11:00
40694c4138 concepts: disable tuple_element test for tuple 2020-02-25 11:23:50 +11:00
61cc9b9ed2 tuple/value: add all and none queries 2020-02-25 11:17:05 +11:00
1427a61745 concepts: protect tuple concept against empty tuples 2020-02-25 11:16:58 +11:00
fb4e70d146 concepts: add initial invocable concept 2020-02-25 11:16:16 +11:00
25460cc527 iterator/cast: add skeleton of a casting iterator 2020-02-24 14:41:37 +11:00
28a7890681 types/tagged: use concepts to restrict assignable types 2020-02-24 14:41:37 +11:00
ebd88b25e7 iterator/zip: use the iterable concept for zip construction 2020-02-24 14:41:37 +11:00
3791c8b8ee iterator: add methods to conform iota to LegacyIterator 2020-02-24 14:41:37 +11:00
84cbbbd049 concepts: add tuplelike concept 2020-02-24 14:41:37 +11:00
455b3b973f concepts: add scalar, enumeration, and iterable concepts 2020-02-24 14:41:37 +11:00
8f39ed706d concepts: style 2020-02-24 14:37:18 +11:00
8ddf4a915d concepts: swappable should test using std::swap 2020-02-24 14:36:59 +11:00
df924f049b concepts: add constructible_from 2020-02-24 14:36:40 +11:00
6a15651694 maths: convert to concepts 2020-02-18 12:18:43 +11:00
c5174c2817 concepts: add numeric 2020-02-18 12:18:26 +11:00
706e77f44a concepts: add legacy_input_iterator and legacy_iterator 2020-02-18 12:18:05 +11:00
c001502aa2 concepts: add integral and floating concepts 2020-02-18 12:17:37 +11:00
d45433e97f quaternion: add a subtraction operator 2020-02-18 12:17:06 +11:00
0dc4929c5e concepts: add initial testing header 2020-02-18 11:23:21 +11:00
8cdbbcb26e build: fix range-loop-analysis warnings 2020-02-17 17:40:03 +11:00
37899b3f8b view: prefer allocator_traits over allocator for pointer
allocator::pointer has been removed in c++20, so we need to be using
allocator_traits::pointer here instead.
2020-02-17 14:30:30 +11:00
0d497738ce iterator: add less-equal operators for libstdc++-10 compatibility 2020-02-17 14:29:50 +11:00
9750796e4e cpuid/x86: explicitly include iosfwd 2020-02-17 14:29:31 +11:00
9031a12890 view: remove implicit equality for strings 2020-02-17 14:29:09 +11:00
b99db1a893 cast: explicitly include string_view 2020-02-17 14:28:43 +11:00
85a502774c types: add the convert trait
This unconditionally replaces the first argument with the second.

It can be useful when dealing with parameter packs.
2020-02-07 10:15:43 +11:00
0ded941de6 singleton: rename valid as is_valid 2020-02-05 15:16:55 +11:00
c6bce64af3 quaternion: clarify that from_to result is normalised 2020-01-30 15:06:36 +11:00
44509498b7 singleton: add a public query for validity 2020-01-28 14:13:12 +11:00
46d19464b5 parse/value: style 2020-01-28 14:13:03 +11:00
450b65e2e5 posix/fd: add an ftruncate wrapper 2020-01-21 13:03:49 +11:00
0a7adfb037 cmdopt: add simple requires constraint callbacks 2020-01-17 07:58:23 +11:00
ac168e86b5 container: add free 'contains' query 2020-01-16 11:58:52 +11:00
3c768daf81 std: clarify header guarantees 2020-01-16 11:58:03 +11:00
49c0b35fe7 coord/ops: add isfinite call for vectors 2020-01-14 14:07:52 +11:00
4bea2668c3 view: prefer static_assert over SFINAE for extract
This produces more readable error messages, and we are not using
`extract` in a context where we need to disambiguate calls anyway.
2020-01-05 08:28:57 +11:00
cff7375cc1 uri: constructors should be implicit for ease of use
They don't act like other classes, or implicitly convert to other
classes, so the risks are minimal.
2020-01-02 11:20:59 +11:00
f404acfda0 view: allow extract with mutable pointers 2020-01-01 12:38:22 +11:00
8da3cc3293 iterator/infix: determine container value_type via its iterators 2020-01-01 11:08:20 +11:00
8fdb09c95c endian: add convenience typedefs for little endian sized types 2020-01-01 11:07:54 +11:00
4c35486776 endian: specialise endian converter for identity transforms 2020-01-01 11:07:30 +11:00
e05b522827 endian: add readbe to complement readle and readhe 2020-01-01 11:07:00 +11:00