Commit Graph

307 Commits (ffc5bc0442499a62d83805e6b705e2173f3358e8)

Author SHA1 Message Date
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
Daniel Kolesa 0c8c16a44a windows fixes + stdin/stdout/stderr might be defined as macros 2016-07-06 17:05:32 +01:00
Daniel Kolesa f5a7c19acc fix invalid cast 2016-07-05 18:27:27 +01:00
Daniel Kolesa b7a2322990 add nothrow constructible/assignable/destructible type traits (for when user code uses exceptions) 2016-07-03 01:39:13 +01:00
Daniel Kolesa 47ed1a700c don't use classic style casts 2016-07-02 04:57:23 +01:00
Daniel Kolesa 85b7602654 fix directory stream on Linux as glibc's dirent.h doesn't put . and .. entries to the start 2016-06-28 19:52:37 +01:00
Daniel Kolesa 676f76acee string element append fix and OS X support note 2016-06-27 19:18:31 +01:00
Daniel Kolesa 7912c24e3a const syntax refactoring 2016-06-23 19:18:35 +01:00
Daniel Kolesa 430ca81bfd pass compare func by reference in sort impl (don't copy it around) 2016-05-29 02:41:58 +01:00
Daniel Kolesa 46d8844a49 return fix 2016-05-24 01:30:11 +01:00
Daniel Kolesa 5189bab1af simplify string operator+= for T 2016-05-22 15:31:11 +01:00
Daniel Kolesa d9bd0f8380 restrict string operator+ (conflicts with range offset) 2016-05-21 15:36:14 +01:00
Daniel Kolesa 65954f614c decay map/filter callbacks before storing them 2016-05-09 00:07:25 +01:00
Daniel Kolesa a5c4b9d3ca global concat op for strings 2016-05-07 17:25:40 +01:00
Daniel Kolesa 7561d40b14 missed inline 2016-05-04 00:50:52 +01:00
Daniel Kolesa 75e27a14b0 overload rvalue refs to const for tuple 2016-05-02 18:21:54 +01:00
Daniel Kolesa 34cb1f1fbd forward the tuple to ensure correct get semantics 2016-05-01 00:53:48 +01:00
Daniel Kolesa f46ffa53fd forwarding join/zip 2016-05-01 00:34:00 +01:00
Daniel Kolesa b16e72fa16 convert nearly all algos (except variadic ones) to use perfect forwarding 2016-04-30 19:21:50 +01:00
Daniel Kolesa ca0dfcd8a4 fix return type 2016-04-30 18:27:53 +01:00
Daniel Kolesa 0f5ed68124 actually need to move things into the lambda or they die 2016-04-30 18:24:17 +01:00
Daniel Kolesa 5dfc54dad9 simplify map/filter 2016-04-30 17:58:37 +01:00
Daniel Kolesa e33797e571 pipeable foldl/foldr func variant 2016-04-29 17:47:04 +01:00
Daniel Kolesa fcd0616f4d fix naming 2016-04-29 17:45:06 +01:00
Daniel Kolesa 551dc8bc15 return range from sort and make it pipeable 2016-04-29 17:34:46 +01:00
Daniel Kolesa 62fdbc74ad add missing pipeable algorithms and suffix funcs that use comparators 2016-04-29 17:30:32 +01:00