Commit Graph

269 Commits (6b3707c0dc47d90c48dc41678973e62247d49b22)

Author SHA1 Message Date
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
Daniel Kolesa ab22ba910a remove mutable where unnecessary + capture join/zip by ref instead of copy 2016-04-27 18:42:51 +01:00
Daniel Kolesa 878476a397 use int for sdl1 mode and report size 2016-04-27 01:18:04 +01:00
Daniel Kolesa c5a9d535f5 fixes 2016-04-27 01:11:03 +01:00
Daniel Kolesa e51fe5a348 add an extensions directory and first extension, sdl rwops stream integration 2016-04-27 01:08:59 +01:00
Daniel Kolesa 288526e7db capture by references more (the objects live long enough to be safe) 2016-04-27 00:29:55 +01:00
Daniel Kolesa e7dd08d884 piping for nearly all algorithms 2016-04-26 22:25:46 +01:00
Daniel Kolesa 5604df9625 make core range funcs methods on InputRange + initial support for piping 2016-04-26 22:05:07 +01:00
Daniel Kolesa 2d399a2ed3 fix RangeValue for ZipRange 2016-03-30 20:41:59 +01:00
Daniel Kolesa 6c840ad830 implement zip and tuple ToString 2016-03-27 23:49:57 +01:00
Daniel Kolesa f651940570 add initial implementation of range joiner (join any type-compatible ranges into one) 2016-03-27 21:06:00 +01:00
Daniel Kolesa 59551e0aee fix the StreamMode enum 2016-03-26 17:26:37 +00:00
Daniel Kolesa ce42683c99 default to read mode in filestreams 2016-03-26 15:19:00 +00:00
Daniel Kolesa 54789177e2 no need for a typedef 2016-03-24 21:52:16 +00:00
Daniel Kolesa 60a04937c6 string range optimizations 2016-03-23 22:32:30 +00:00
Daniel Kolesa a31ddba522 range fixes 2016-03-23 22:27:46 +00:00
Daniel Kolesa 9de9d99d4d fixes 2016-03-22 01:13:43 +00:00
Daniel Kolesa 5b4ea576b7 change to RemoveConst 2016-03-21 21:25:23 +00:00
Daniel Kolesa e48642659d generalize temp cstrings for any range type 2016-03-21 21:21:41 +00:00
Daniel Kolesa 4854242918 typo fix 2016-03-20 20:23:26 +00:00
Daniel Kolesa 6c4fd3d8ae this doesn't actually happen 2016-03-19 20:23:46 +00:00
Daniel Kolesa a63cf1edb1 add experimental api to turn unterminated string ranges to terminated c strings 2016-03-19 19:52:46 +00:00
Daniel Kolesa 40746de1c3 add environment funcs (environ.hh) and update test runner code (less verbose/cleaner) 2016-03-13 01:28:39 +00:00
Daniel Kolesa b66c684add add trailing newlines 2016-02-07 21:19:20 +00:00
Daniel Kolesa dfc867bd48 remove unused file 2016-02-05 21:29:27 +00:00
Daniel Kolesa 3495d6ea2f remove platform.hh include 2016-01-28 18:36:48 +00:00
Daniel Kolesa 0580638905 move windows.h include into its own header (to define LEAN_AND_MEAN and NOMINMAX in all places) 2016-01-27 19:35:11 +00:00
Daniel Kolesa 62d7836f32 header fixes 2016-01-26 19:01:27 +00:00
Daniel Kolesa e5dc50b0dd support hardware_concurrency static method like c++ std::thread (also replaces cpu_count_get) 2016-01-26 18:58:16 +00:00
Daniel Kolesa 5192ea4977 small cleanup 2016-01-24 16:59:44 +00:00
Daniel Kolesa 4b9faefa5c convert locking/cond code to pthreads to get rid of awful c11 api 2016-01-24 15:33:15 +00:00
Daniel Kolesa 86170b75c4 convert thread.hh to phreads (c11 threads api is awful) 2016-01-24 15:22:51 +00:00
Daniel Kolesa 4eb03ad017 lock fixes 2016-01-23 22:38:30 +00:00
Daniel Kolesa 98eeb765fd initial implementation of locking primitives and conditions 2016-01-23 22:16:10 +00:00
Daniel Kolesa bf647c100e re-add iter for arrays of const 2016-01-23 17:38:41 +00:00
Daniel Kolesa 46fb6ced30 support for extra args for thread constructor 2016-01-23 17:26:42 +00:00
Daniel Kolesa b84eb137da initial portable ostd::Thread interface (on top of C11 threads) 2016-01-23 16:54:27 +00:00
Daniel Kolesa d1feaafb5e change style for constants 2016-01-22 18:12:39 +00:00
Daniel Kolesa eaaddb0d0b redefine some stuff without macros 2016-01-22 18:10:13 +00:00