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
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
Daniel Kolesa
e7c6032edb
add initial numeric limits implementation (type-generic min/max/etc)
2016-11-15 22:46:03 +01:00
Daniel Kolesa
9e609e0057
rename disown to release (consistent with other places)
2016-09-18 19:30:55 +02:00
Daniel Kolesa
9251fb506f
remove unneeded code
2016-09-18 19:22:54 +02:00
Daniel Kolesa
9d174013e6
fix
2016-09-11 21:21:07 +02:00
Daniel Kolesa
519c9c7624
more noexcept and readme note
2016-09-11 21:20:03 +02:00
Daniel Kolesa
1586cedd17
noexcept for memory.hh
2016-09-11 20:46:53 +02:00
Daniel Kolesa
70a2b88898
allow non-static methods to be bound to Function
2016-09-11 19:57:42 +02:00
Daniel Kolesa
462e6f0659
new ostd::Function implementation (cleaner with better allocator awareness including stateful allocators)
2016-09-11 17:58:16 +02:00
Daniel Kolesa
f26cf02277
more internal traits for later use + cleaned ResultOf
2016-09-11 16:26:36 +02:00
Daniel Kolesa
211961cc31
implement piecewise construction for Pair/CompressedPair
2016-09-11 14:08:56 +02:00
Daniel Kolesa
7f2e5f67d4
fix
2016-09-06 19:55:17 +02:00
Daniel Kolesa
d31101d85e
typo fix
2016-09-02 18:58:24 +01:00
Daniel Kolesa
59ce413ef3
maybe enhancements
2016-09-02 18:52:58 +01:00
Daniel Kolesa
b202cb43ad
typo
2016-09-02 18:20:39 +01:00
Daniel Kolesa
0dc4d5074d
Maybe enhancements
2016-09-02 18:15:46 +01:00
Daniel Kolesa
cd748bd44a
remove unneeded code
2016-09-02 17:21:35 +01:00
Daniel Kolesa
c4039fa56f
add case insensitive string compare
2016-09-02 00:06:13 +01:00
Daniel Kolesa
17365642ef
actually safe string cmp
2016-08-18 00:35:21 +01:00
Daniel Kolesa
c7862243a8
avoid UB in string compare
2016-08-17 18:18:12 +01:00
Daniel Kolesa
7a11157f95
formatting
2016-08-03 16:50:06 +01:00
Daniel Kolesa
d259877fba
typo fix
2016-07-31 20:50:07 +01:00
Daniel Kolesa
8afffc1fb7
refactoring, style updates, various fixes
2016-07-31 20:40:25 +01:00
Daniel Kolesa
88241f5f9e
remove namespace
2016-07-08 19:48:11 +01:00
Daniel Kolesa
115da8be30
use lstat for consistent behavior
2016-07-07 19:46:53 +01:00
Daniel Kolesa
8b7fc0f791
don't alloc path twice
2016-07-07 17:06:57 +01:00
Daniel Kolesa
b02966fb9d
environment api for windows, and rename environ namespace to envvar because windows is retarded
2016-07-06 20:40:43 +02:00
Daniel Kolesa
dd35b0bf05
fix incorrect FindFirstFile logic on Windows
2016-07-06 19:51:39 +02:00
Daniel Kolesa
85d98780ce
windows build warning/error fixes
2016-07-06 19:31:21 +02:00
Daniel Kolesa
0a1b578fcd
ignore some template specializations for systems with no big char builtins
2016-07-06 19:10:17 +02:00