Daniel Kolesa
13477db869
add a format() overload to format a single spec without a format string + use
2017-02-11 00:18:41 +01:00
Daniel Kolesa
d56a233120
partial cleanup of format module, better error handling
2017-02-10 23:49:00 +01:00
Daniel Kolesa
9ab2093ed4
clean up join range pop/front
2017-02-10 21:06:08 +01:00
Daniel Kolesa
2e773b3849
clean up join/zip ranges with c++17 fold expressions
2017-02-10 20:26:13 +01:00
Daniel Kolesa
d06637eac6
actually use write_bytes directly
2017-02-10 17:48:19 +01:00
Daniel Kolesa
922f19b776
make write(x) equivalent to write("%s", x)
2017-02-10 17:44:06 +01:00
Daniel Kolesa
e1f5cc477f
extend IteratorRange to handle pointers as special case
2017-02-09 23:38:11 +01:00
Daniel Kolesa
052fa58be4
clean up pointer range constructor
2017-02-09 22:55:17 +01:00
Daniel Kolesa
946cf9d3fe
use char_traits in string range types
2017-02-09 21:39:35 +01:00
Daniel Kolesa
2d5c4cab3f
clean up pointer/string ranges
2017-02-09 21:27:20 +01:00
Daniel Kolesa
c5dd6bb8c3
remove obsolete type traits
2017-02-09 20:56:15 +01:00
Daniel Kolesa
ea6d3d4bbf
clean up IteratorRange, use unsigned variant of difference for size
2017-02-09 20:13:52 +01:00
Daniel Kolesa
463c7275d5
use ranged_traits specialization for static arrays
2017-02-09 20:07:10 +01:00
Daniel Kolesa
79809a610b
remove functional.hh
2017-02-08 01:06:50 +01:00
Daniel Kolesa
efa103c362
consistent error msg
2017-02-01 22:42:18 +01:00
Daniel Kolesa
9e87d372de
allow constructing unordered_maps from any 2-tuple range
2017-02-01 22:38:25 +01:00
Daniel Kolesa
407d4a524f
forgot to actually use the new template params
2017-02-01 20:58:54 +01:00
Daniel Kolesa
0842a24cd3
complete template param support for all ranged make_ funcs and ranged_traits
2017-02-01 20:56:29 +01:00
Daniel Kolesa
84f01c1286
remove memory.hh
2017-02-01 20:19:14 +01:00
Daniel Kolesa
3e683a2436
remove silly intermediate ranges for writef, print directly to stream
2017-02-01 19:30:15 +01:00
Daniel Kolesa
077835e4b6
range system fixes, add iterator types to RangeHalf, optimize make_vector(R)
2017-02-01 18:29:42 +01:00
Daniel Kolesa
e0072773e1
remove custom hashtable; no longer necessary
2017-01-31 19:31:55 +01:00
Daniel Kolesa
1f83e8c1b0
cleaner range passing in second version of make_CONTAINER
2017-01-31 19:17:46 +01:00
Daniel Kolesa
fbdaf77b62
std::unordered_map initial range support (no extra template args yet)
2017-01-31 19:11:38 +01:00
Daniel Kolesa
6ec72a6ecd
add IteratorRange to make a range out of any two iterators
2017-01-30 22:07:12 +01:00
Daniel Kolesa
62b0c2ecf7
hash operator() needs to be const
2017-01-30 19:31:24 +01:00
Daniel Kolesa
1abf3bb3ad
remove Maybe (use optional instead)
2017-01-30 19:27:25 +01:00
Daniel Kolesa
0ee0d3231c
use standard types
2017-01-30 19:23:12 +01:00
Daniel Kolesa
2884f4b47b
use size_t and ptrdiff_t
2017-01-30 19:11:49 +01:00
Daniel Kolesa
1db7529ad9
remove custom hashing
2017-01-30 18:56:38 +01:00
Daniel Kolesa
343c684820
initial proper string integration
2017-01-30 01:16:29 +01:00
Daniel Kolesa
632147c5fb
bump compiler
2017-01-29 21:22:40 +01:00
Daniel Kolesa
58a361e6e0
remove ostd::Function after all (never supported allocators properly anyway)
2017-01-29 18:38:37 +01:00
Daniel Kolesa
2c7f98f57e
use standard swap
2017-01-29 15:56:02 +01:00
Daniel Kolesa
a8f7122d45
use standard declval
2017-01-29 15:29:11 +01:00
Daniel Kolesa
a41299505c
use unique_ptr
2017-01-29 15:16:13 +01:00
Daniel Kolesa
71515c5383
actually keep our own function because libstdc++'s has no allocator support
2017-01-28 23:00:05 +01:00
Daniel Kolesa
780f7e5b21
use standard function
2017-01-28 22:46:48 +01:00
Daniel Kolesa
c751275d83
remove remains of tuple headers
2017-01-28 19:39:50 +01:00
Daniel Kolesa
c8c24300ee
fully use standard tuples
2017-01-28 19:06:52 +01:00
Daniel Kolesa
2e7bba2c95
remove Pair, more standard tuple usage etc
2017-01-28 18:52:34 +01:00
Daniel Kolesa
7e96183648
start moving over to standard tuple
2017-01-28 18:30:31 +01:00
Daniel Kolesa
19226d51af
since we can't ADL for std container iter, use different system
...
This introduces ranged_traits structure, which by default works
for things defining .iter(), but also allows you to override it
per type at later stage, which comes in handy for std containers.
This is because we can't extend the std namespace in any way and
we still need to be able to add iterable functionality to std
containers even at later stage than iter() is defined.
2017-01-26 00:27:54 +01:00
Daniel Kolesa
0bf36b679a
iter extensions for std::array
2017-01-25 23:46:48 +01:00
Daniel Kolesa
56a3327dce
use standard vector and move/forward
2017-01-25 01:57:24 +01:00
Daniel Kolesa
27005f1715
remove native ostd threading/atomic stuff (just use c++11 ones)
2017-01-24 00:35:07 +01:00
Daniel Kolesa
41ad273c32
std allowed by default
2017-01-14 15:09:27 +01:00
Daniel Kolesa
32cd56d3c1
linux/gcc fixes
2017-01-09 17:58:40 +01:00
Daniel Kolesa
1eb3db64f0
use implicit ctor
2016-11-16 19:09:19 +01:00
Daniel Kolesa
c450600097
add type trait to check type size in bits
2016-11-15 22:51:15 +01:00