Daniel Kolesa
c93e818247
rvalue reference matching ostd::iter
2017-03-02 19:50:01 +01:00
Daniel Kolesa
22a5640a59
revamped stream errors, add get_line on streams and stream line range
2017-03-02 18:12:00 +01:00
Daniel Kolesa
f13f11f54e
format helper func with locale support
2017-03-01 19:19:46 +01:00
Daniel Kolesa
15d6b0157b
remove detail::fmt_stream_range (not necessary anymore)
2017-02-28 17:22:29 +01:00
Daniel Kolesa
740914d772
copy the item too
2017-02-27 17:55:05 +01:00
Daniel Kolesa
e0574308a0
fully generic stream range (works on any type of stream)
2017-02-27 17:52:52 +01:00
Daniel Kolesa
9f286f88f3
do not use digit grouping for pointers
2017-02-26 04:23:51 +01:00
Daniel Kolesa
2f4f9dd440
prevent overflow when grouping is in place
2017-02-26 03:28:23 +01:00
Daniel Kolesa
7164019e22
locale digit grouping support for integer format
2017-02-26 03:21:26 +01:00
Daniel Kolesa
8be2e1fa56
basic locale awareness in streams (including writef/ln integration)
2017-02-26 02:06:02 +01:00
Daniel Kolesa
db991ca03d
locale-aware format_spec
2017-02-26 01:04:33 +01:00
Daniel Kolesa
98fb0e3e2e
fix escaping for default range print
2017-02-26 00:32:35 +01:00
Daniel Kolesa
ccb0564bfc
clean up range writer
2017-02-26 00:30:07 +01:00
Daniel Kolesa
bd5aa4795c
custom formatting is now done with format_traits
...
Allows definition for any type, even in any foreign namespace.
2017-02-25 19:17:08 +01:00
Daniel Kolesa
e714e5f3fb
add new format flag @, make it escape always (never toggle)
2017-02-25 18:56:41 +01:00
Daniel Kolesa
e90b0868aa
make the dash flag toggle current escaping mode in format
2017-02-25 17:33:18 +01:00
Daniel Kolesa
262e691a4d
fix test runner
2017-02-25 14:56:51 +01:00
Daniel Kolesa
81ccca0e52
ios based formatting of floats (no heap alloc and basic locale awareness)
2017-02-25 04:03:36 +01:00
Daniel Kolesa
602aa7f182
clean up format
2017-02-22 03:32:03 +01:00
Daniel Kolesa
2665c20351
support for precision in integer format
2017-02-21 18:22:25 +01:00
Daniel Kolesa
a23a42da1f
remove ostd::to_string and ostd::concat (both replaced by more flexible format)
2017-02-20 20:43:38 +01:00
Daniel Kolesa
1e1f6d63a2
support for formatting tuples in format strings via %<contents%>
2017-02-20 20:14:26 +01:00
Daniel Kolesa
3f983afae5
support for printing iterable objects and tuples with %s
2017-02-20 19:36:55 +01:00
Daniel Kolesa
3aa5db5b1c
do not implicitly to_string as a fallback in format
2017-02-20 18:31:08 +01:00
Daniel Kolesa
5a76f29dea
revamped format module (more flexible, cleaner api)
2017-02-20 18:04:03 +01:00
Daniel Kolesa
3a82495a4c
cleanups and optimizations
2017-02-19 18:46:43 +01:00
Daniel Kolesa
78e6771148
bounds checking pointer/string ranges
2017-02-19 18:31:08 +01:00
Daniel Kolesa
d6219046be
add range_put_all which can be overloaded with special optimizations
2017-02-19 18:14:09 +01:00
Daniel Kolesa
e4dc237f4d
revamped output ranges and input range pop funcs
2017-02-19 16:45:06 +01:00
Daniel Kolesa
2661ba91ae
add back appender helper funcs, add noop_output_range and counting_output_range
2017-02-18 19:05:03 +01:00
Daniel Kolesa
c22f8e4b7a
remove ostd::min/max/clamp
2017-02-18 17:54:51 +01:00
Daniel Kolesa
468ddd02e2
remove appender func (unnecessary)
2017-02-18 17:25:49 +01:00
Daniel Kolesa
d155f90ceb
range fixes
2017-02-18 16:21:03 +01:00
Daniel Kolesa
2ce3e6496a
clean up range tests
2017-02-18 15:23:57 +01:00
Daniel Kolesa
755429f901
ravamped range traits
2017-02-18 15:05:42 +01:00
Daniel Kolesa
f039fc7ed9
clean up some sfinae and proxy abuse
2017-02-18 14:31:50 +01:00
Daniel Kolesa
0977b35fd2
cleaner array/pointer ctor for string ranges
2017-02-17 17:50:44 +01:00
Daniel Kolesa
8e40841219
update to new style everywhere
2017-02-16 20:49:34 +01:00
Daniel Kolesa
68c19a80fb
update naming style across range module
2017-02-16 20:02:55 +01:00
Daniel Kolesa
3edcafd9a6
rename string range types to new style
2017-02-16 19:07:14 +01:00
Daniel Kolesa
296345f18e
remove leftover template arg
2017-02-15 19:38:27 +01:00
Daniel Kolesa
8190a0db5c
remove bad iter() overload
2017-02-15 19:35:28 +01:00
Daniel Kolesa
c88660a854
standard way to retrieve range type from ranged_traits + minor fixes
2017-02-15 19:18:57 +01:00
Daniel Kolesa
bd307bd52e
standard iter() for any std container type without ranged_traits
2017-02-14 18:32:51 +01:00
Daniel Kolesa
67cbcb71eb
move initializer_list iter/citer to range.hh
2017-02-14 17:44:24 +01:00
Daniel Kolesa
6b3707c0dc
remove PointerRange, IteratorRange completely replaces it
2017-02-14 17:39:03 +01:00
Daniel Kolesa
08e980cd0a
start cleaning up the range system for nicer syntax
2017-02-13 23:33:52 +01:00
Daniel Kolesa
21da5ec3d1
make the pipe op a member to make it to work automagically on user ranges
2017-02-13 21:13:10 +01:00
Daniel Kolesa
6ba3b93018
cleaner pipe operator definition for ranges
2017-02-13 20:43:23 +01:00
Daniel Kolesa
fd6a47c223
re-add zero-argument format impl and fix char_traits usage for const char ranges
2017-02-12 23:02:49 +01:00
Daniel Kolesa
33bab6eb72
fix wrong return type
2017-02-12 22:51:43 +01:00
Daniel Kolesa
667b2d50ea
use size_t for format results
2017-02-11 01:28:14 +01:00
Daniel Kolesa
dc640d2c1e
no need for the other format_impl overload
2017-02-11 01:11:22 +01:00
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