Commit Graph

742 Commits (master)

Author SHA1 Message Date
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
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
Daniel Kolesa 305d3e54f6 cleanups 2016-01-21 17:58:51 +00:00
Daniel Kolesa 5902299a1d convert the remaining usage of Constant and all the remaining public traits 2016-01-20 19:05:11 +00:00
Daniel Kolesa 8a1671f6ea convert most of the rest to template vars 2016-01-20 18:42:29 +00:00
Daniel Kolesa 7802efa1a1 use constexpr bool for IsTupleLike 2016-01-20 18:09:44 +00:00
Daniel Kolesa 2c4d6fee09 convert TupleSize to template var 2016-01-19 19:14:02 +00:00
Daniel Kolesa 29bf432800 remove bad file 2016-01-18 18:05:04 +00:00
Daniel Kolesa bc0c3f7577 convert some stuff to variable templates 2016-01-16 18:45:55 +00:00
Daniel Kolesa 460cded195 add BoolConstant 2016-01-16 18:33:52 +00:00
Daniel Kolesa 9e4d475488 rename IntegralConstant to Constant 2016-01-16 18:31:58 +00:00
Daniel Kolesa 31a46ef07d more trait cleanups 2016-01-14 21:16:42 +00:00
Daniel Kolesa 37059e505b remove some unnecessary code 2016-01-14 19:32:22 +00:00
Daniel Kolesa f578bd71f6 simplify range traits tests 2016-01-14 19:15:50 +00:00
Daniel Kolesa 8152173c39 convert more traits 2016-01-14 19:11:52 +00:00
Daniel Kolesa abde607016 remove most IntegralConstant usages from type_traits 2016-01-14 19:03:22 +00:00
Daniel Kolesa 7d52a75348 convert some traits to cleaner syntax 2016-01-14 18:49:38 +00:00
Daniel Kolesa 1c5ba28f35 replace some traits with c++14 style nice definitions 2016-01-13 20:46:16 +00:00
Daniel Kolesa 41174195bb drop static in constexpr template vars 2016-01-13 20:40:59 +00:00
Daniel Kolesa 818cbe376a convert the remaining type_traits.hh checking traits to constexpr bools 2016-01-13 18:09:21 +00:00
Daniel Kolesa a6744105dc convert range checks to template vars 2016-01-13 17:42:37 +00:00
Daniel Kolesa 9b11c1d319 convert IsSame to template variable 2016-01-12 22:24:40 +00:00
Daniel Kolesa 7edf3e1d4a more template var conversions 2016-01-12 22:09:40 +00:00
Daniel Kolesa 697b135157 remove unneeded forward decl 2016-01-12 21:56:17 +00:00
Daniel Kolesa d53556d336 convert a part of type traits to template variables (reduces verbosity in a lot of places) 2016-01-12 21:45:26 +00:00
Daniel Kolesa 02e7ae76a2 add ostd::starts_with to string library 2015-12-31 16:36:41 +01:00
Daniel Kolesa 31d3182a4a fix shadow warnings 2015-12-30 15:13:07 +01:00
Daniel Kolesa b3a12884be forgot endif 2015-09-30 19:18:09 +01:00
Daniel Kolesa 561b6d01fa symbol visibility support in platform.hh 2015-09-30 18:49:30 +01:00
Daniel Kolesa c9c4ca4f77 add ostd::cpu_count_get in platform.hh 2015-09-25 19:42:34 +01:00
Daniel Kolesa 0c09c709b5 add argparse.hh initial skeleton 2015-09-22 20:23:59 +01:00
Daniel Kolesa 0c26f0c94e simple api to change dir 2015-09-14 01:31:31 +01:00
Daniel Kolesa f78aac9040 fix multiple method definitions 2015-09-10 18:54:47 +01:00
Daniel Kolesa d1912c4237 fix directory rewind on unix 2015-09-08 01:17:28 +01:00
Daniel Kolesa 9648d5e011 experimental complete win32 support in filesystem.hh 2015-09-08 01:03:56 +01:00
Daniel Kolesa d163028054 directory stream optimization 2015-09-08 00:49:50 +01:00
Daniel Kolesa 80b6aa588b empty() public on DirectoryStream 2015-09-07 19:34:55 +01:00
Daniel Kolesa a31fbdbe32 cleanup 2015-09-06 17:39:09 +01:00
Daniel Kolesa 1c48de0ccd try to get the dirent.h stuff right at last 2015-09-06 17:11:15 +01:00
Daniel Kolesa c5fb814bb3 remove the owned stuff from filesystem module 2015-09-06 16:20:51 +01:00
Daniel Kolesa 60aba3a82b some initial win32 bits for filesystem module 2015-09-06 16:09:03 +01:00
Daniel Kolesa baaa1e790d filesystem module enhancements 2015-09-05 03:35:07 +01:00
Daniel Kolesa d0662f2b08 better type names 2015-09-04 18:57:14 +01:00
Daniel Kolesa c33fb68d89 fix algorithm::find_last + filesystem module fixes 2015-09-04 18:46:28 +01:00
Daniel Kolesa 75a9f284a4 initial experimental filesystem API 2015-09-04 18:25:17 +01:00
Daniel Kolesa d9120a0015 new predefined operations for input ranges (defined for all without need for custom impl) 2015-08-31 14:47:19 +01:00
Daniel Kolesa eb3c273376 add algorithm::find_last 2015-08-16 11:35:06 -07:00
Daniel Kolesa 0a55b0326e add algorithm::slice_until (slice1 range from the beginning until range2 not-inclusive) 2015-08-13 23:25:39 +01:00
Daniel Kolesa 1a6d95580f add algorithm::find_one_of (finds the first occurence of any value in the second range in the first range, then returns the range) 2015-08-11 01:32:24 +01:00
Daniel Kolesa 0fae09907e string fixes + add advance() 2015-08-07 03:12:00 +01:00
Daniel Kolesa 0be81997af new iter utils for pointer ranges 2015-08-07 02:36:58 +01:00
Daniel Kolesa 44d2600067 fix warning when passing nullptr constant 2015-08-07 00:08:59 +01:00
Daniel Kolesa 661bd5244e null checks 2015-08-06 23:57:40 +01:00
Daniel Kolesa 8ba91c12fe string clear check 2015-08-05 21:58:06 +01:00
Daniel Kolesa 4f23017594 keyset: allow get_key to return by value (still use reference where possible) 2015-08-05 20:05:03 +01:00
Daniel Kolesa 50a8562d20 ensure correct ctor overload resolution on char/pointer range for two pointers vs pointer plus size when passed int (or similar) 2015-08-05 02:09:44 +01:00
Daniel Kolesa da4c3a0947 add ostd::Keyset - an associative array that stores keys inside of their elements 2015-08-02 15:57:09 +01:00
Daniel Kolesa 9729ce1bbc simplify and fix multimap/multiset emplace 2015-08-02 15:08:42 +01:00
Daniel Kolesa 770f5ea0f2 use the new functor as default cmp in hashtables 2015-08-02 14:58:49 +01:00
Daniel Kolesa 65fb75d8ab add function object EqualWithCstr to consider char pointers strings 2015-08-02 14:56:10 +01:00
Daniel Kolesa 74b233d5d1 add Vector::advance 2015-08-01 20:25:02 +01:00
Daniel Kolesa e89448af70 add vector push_n 2015-08-01 20:16:03 +01:00
Daniel Kolesa ef5951577d fix tuple (why did that compile?) 2015-08-01 18:34:53 +01:00
Daniel Kolesa bcb5f64250 str fixes 2015-08-01 04:29:26 +01:00
Daniel Kolesa 49af758238 explicit overloads of operator= on string for ptr/array because c++ type system blows 2015-08-01 04:19:37 +01:00
Daniel Kolesa bc2bd9ca3b hashtable fixes 2015-08-01 04:11:03 +01:00
Daniel Kolesa c66fa7c7bf forgot inline 2015-08-01 03:08:11 +01:00
Daniel Kolesa 0ceada8629 allow default ctor on PointerRange 2015-07-29 01:37:22 +01:00
Daniel Kolesa df4b169aa8 better range constraints 2015-07-28 02:40:24 +01:00
Daniel Kolesa bf8be04b01 actual warning fix 2015-07-26 19:08:47 +01:00
Daniel Kolesa 3fbaedbfc2 prevent compiler warnings on 32bit (code is not reached, but compilers complain) 2015-07-26 18:57:23 +01:00
Daniel Kolesa 5cf1c9feff more versions of vec operators 2015-07-26 15:26:52 +01:00
Daniel Kolesa f96e74902a more vector stuff 2015-07-26 15:18:41 +01:00
Daniel Kolesa b4619085b7 basic vector operations 2015-07-26 15:05:12 +01:00
Daniel Kolesa ea024ea80e vecmath constructors and relational operators 2015-07-26 14:53:09 +01:00
Daniel Kolesa 431bfa4dc8 initial skeleton for octastd vector math lib 2015-07-26 04:03:13 +01:00
Daniel Kolesa 841000d4d8 better string append() and operator+= (easy ranged append) 2015-07-25 02:34:07 +01:00
Daniel Kolesa 6c28e6dd66 fixed typo 2015-07-25 02:07:51 +01:00
Daniel Kolesa 178e6d2ae2 remove AnyString 2015-07-25 01:35:36 +01:00
Daniel Kolesa 90bc301487 reliable and simple string relational operators that work on ConstCharRange 2015-07-24 19:43:39 +01:00
Daniel Kolesa 7ede73f4dc sink based concat() (no allocation in-func) 2015-07-23 02:05:08 +01:00
Daniel Kolesa 287bdbd312 contiguous ranges provide the data() method to retrieve a pointer to the sequence 2015-07-23 01:32:22 +01:00
Daniel Kolesa 7fc4ce0a3a new range category: ContiguousRange (guaranteed to be backed by contiguous memory) 2015-07-23 01:28:25 +01:00
Daniel Kolesa 0e0ba19ead stricter to_format check 2015-07-23 00:48:32 +01:00
Daniel Kolesa ad2d69e83d use a sink for to_string methods on objects (no extra allocs) 2015-07-23 00:44:23 +01:00
Daniel Kolesa 9446470f3c use ConstCharRange for concat separator 2015-07-22 21:10:04 +01:00
Daniel Kolesa 13ca140b63 string ctor for pointer and literal because c++ semantics suck 2015-07-22 21:01:02 +01:00
Daniel Kolesa 161ab5be85 cleaned up constructors/assign ops for string and vector 2015-07-22 20:51:12 +01:00
Daniel Kolesa b9edc0c568 rewritten and simplified write(f/ln) on stream objects 2015-07-22 02:06:36 +01:00
Daniel Kolesa debbddc8da format cleanups (and add convenience method put_string to the to_format range) 2015-07-22 01:53:55 +01:00
Daniel Kolesa b2d656e481 use ConstCharRange when formatting strings 2015-07-22 01:30:23 +01:00
Daniel Kolesa 5786fc5fb7 user defined literal for const char ranges 2015-07-22 00:13:44 +01:00
Daniel Kolesa 458e0b8b87 use ConstCharRange for streams 2015-07-21 22:30:53 +01:00
Daniel Kolesa a84142474c io.hh cleanup 2015-07-21 22:21:54 +01:00
Daniel Kolesa 7a2f8581d7 StringRange -> CharRange 2015-07-21 22:06:23 +01:00
Daniel Kolesa f2082d17cd use string ranges everywhere else in format 2015-07-21 22:03:57 +01:00
Daniel Kolesa 874f8a3c14 use string ranges in format 2015-07-21 21:45:04 +01:00
Daniel Kolesa 7a0237788f ConstStringRange ToString specialization 2015-07-21 20:25:09 +01:00
Daniel Kolesa aa9bdb3ec2 better StringRange from-string ctor (allows for non-const to const conv semantics) 2015-07-21 20:23:31 +01:00
Daniel Kolesa 5d36b5663c StringRange - differentiate between arrays and pointer constructors 2015-07-21 20:19:27 +01:00
Daniel Kolesa 852ae9ea37 better hashtable erase 2015-07-21 02:11:53 +01:00
Daniel Kolesa 71f5df79ce better multihash insertion strategy (make sure elements with equal keys always form a sequence in a bucket) 2015-07-21 01:37:02 +01:00
Daniel Kolesa 8e40fca1ce hash fixes/cleanups and make at() return a pointer 2015-07-20 22:04:52 +01:00
Daniel Kolesa 56629ff358 bucket list cleanup 2015-07-20 21:56:56 +01:00
Daniel Kolesa 0421e7b3c8 use calls to bucket() to get hashes 2015-07-20 21:08:49 +01:00
Daniel Kolesa 0c297af0bd hash chunk cache line boundary alignment optimization 2015-07-20 18:51:16 +01:00
Daniel Kolesa cc0fccb8cf use fnv-1a hashing instead of djb2 2015-07-20 02:20:35 +01:00
Daniel Kolesa a048a5384c use mem_hash for hashing strings 2015-07-20 02:15:12 +01:00
Daniel Kolesa 453b463ce6 optimize hashtable to use small ranges (but larger nodes) 2015-07-20 02:08:30 +01:00
Daniel Kolesa 3613af3daa alloc an extra bucket ptr as trailing sentinel value (for later usage) 2015-07-20 00:50:31 +01:00
Daniel Kolesa d7c789195a string fixes 2015-07-18 17:01:11 +01:00
Daniel Kolesa 53e292cdb0 _s literal for strings 2015-07-18 01:02:13 +01:00
Daniel Kolesa a6584020a3 signal.hh -> event.hh, Event -> Signal 2015-07-17 19:00:25 +01:00
Daniel Kolesa e9cf0c67ed more signal functionality 2015-07-16 20:49:12 +01:00
Daniel Kolesa 58cbe3873c recycle signal slots 2015-07-16 19:21:51 +01:00
Daniel Kolesa 8327022c67 signal const correctness 2015-07-16 18:55:21 +01:00
Daniel Kolesa b22baaf5fd const for emit 2015-07-16 01:42:35 +01:00
Daniel Kolesa b20e32a8b6 add Event::clear 2015-07-16 01:40:58 +01:00
Daniel Kolesa 01ebb0063c add new signal API 2015-07-16 01:37:37 +01:00
Daniel Kolesa 267e14c1c2 Maybe fix 2015-07-15 22:03:51 +01:00
Daniel Kolesa 1c4f04757d mv the octa directory too 2015-07-13 20:10:29 +01:00