Commit Graph

382 Commits (37367b3c093ca75003629e1f8bd179a0fccd543d)

Author SHA1 Message Date
Daniel Kolesa 37367b3c09 range format fixes 2015-07-04 02:30:46 +01:00
Daniel Kolesa 87ff73c810 working range formatting 2015-07-04 02:18:21 +01:00
Daniel Kolesa c17de276e3 move format impl into namespace detail 2015-07-04 01:18:14 +01:00
Daniel Kolesa 47a98592f0 allow range format to be specified positionally 2015-07-04 01:14:33 +01:00
Daniel Kolesa 55dc5bdf34 initial parsing for format ranges 2015-07-04 01:04:09 +01:00
Daniel Kolesa 30de752ac8 rename formatted_write to format 2015-07-03 22:43:54 +01:00
Daniel Kolesa b81aacab61 more error checking 2015-07-03 21:55:35 +01:00
Daniel Kolesa 60bf265461 add support for precision on arg on strings 2015-07-03 21:53:09 +01:00
Daniel Kolesa 69b31e439c unify string format 2015-07-03 21:50:02 +01:00
Daniel Kolesa a984ee7026 add support for passing width/precision via argument 2015-07-03 21:46:06 +01:00
Daniel Kolesa 2d21a894cd add support for formatting pointers 2015-07-03 21:19:50 +01:00
Daniel Kolesa bc2bb5e635 complete integer formatting, error checking (return -1 on invalid format) 2015-07-03 21:14:13 +01:00
Daniel Kolesa 0b8d9ec4cf format fixes, cleanups and optimizations; add formatting of floating point numbers 2015-07-03 18:21:05 +01:00
Daniel Kolesa 7e3a755f9a template write_u (use the most efficient unsigned storage) 2015-07-03 01:59:34 +01:00
Daniel Kolesa c6db1a8b47 check formatting character and store it 2015-07-02 20:58:04 +01:00
Daniel Kolesa c5c510d168 separate formatting logic into its own data structure + cleanup + simplify 2015-07-02 19:02:59 +01:00
Daniel Kolesa 4bb689cdc2 parse flags, width, precision and apply them in a few places 2015-07-02 02:00:05 +01:00
Daniel Kolesa 380990c129 don't increment fmt in asserts 2015-07-01 23:15:04 +01:00
Daniel Kolesa 598fcbfa25 use c style formatting for strings (but type-generic, i.e. %s prints any value) 2015-07-01 23:11:42 +01:00
Daniel Kolesa e6e1020702 get_n is now called copy (and doesn't modify itself unless it's InputRange) 2015-07-01 22:32:41 +01:00
Daniel Kolesa dd157f8be8 fix get_n 2015-07-01 22:26:56 +01:00
Daniel Kolesa 98decde76a more reliable output range check + add a way to omit the ocunt on get_n 2015-07-01 22:21:44 +01:00
Daniel Kolesa 94fc7017cd fix vector from-range ctors + cleanup 2015-07-01 22:03:45 +01:00
Daniel Kolesa e31c227567 add optional range methods get_n/put_n (with accurate default implementations, overridable for performance) 2015-07-01 21:46:58 +01:00
Daniel Kolesa a23525bacf make put() on OutputRanges return bool 2015-07-01 21:12:45 +01:00
Daniel Kolesa f36c35afae add StringBase::length which will eventually deal with unicode and return the number of codepoints 2015-07-01 21:03:44 +01:00
Daniel Kolesa c86d31e5c2 use 64bit file offsets and _ftelli64/_fseeki64 on Windows + specialize some FileStream methods 2015-07-01 21:02:01 +01:00
Daniel Kolesa 1de58ac2b6 make most funcs taking strings allocator independent 2015-07-01 20:20:37 +01:00
Daniel Kolesa ea1325543d more formatter work, type traits fixes, formatting on all streams 2015-07-01 18:51:39 +01:00
Daniel Kolesa b5748267d9 namespace detail stuff 2015-07-01 02:29:42 +01:00
Daniel Kolesa 011aea6fbb initial format string support 2015-07-01 02:23:07 +01:00
Daniel Kolesa 809e4825ae fixes 2015-07-01 01:46:01 +01:00
Daniel Kolesa b51e84c8b0 hash char */const char * as a string by default (to avoid that, cast to byte ptr) 2015-06-30 23:30:48 +01:00
Daniel Kolesa 06eeec1ca7 schar/uchar -> sbyte/byte, extend write/writeln on Stream, rename Stream::read/write to read/write_bytes to clear ambiguities and overloads, fixes 2015-06-30 23:07:28 +01:00
Daniel Kolesa 5ace1c4777 vararg and type-generic octa::write(ln) 2015-06-30 22:41:17 +01:00
Daniel Kolesa 656ddb76af split filestreams into octa/io.hh + add more funcs, methods etc 2015-06-30 19:25:40 +01:00
Daniel Kolesa 1e7640031a delete default ctors on all core range types 2015-06-29 23:33:20 +01:00
Daniel Kolesa 57dbad0282 remove the need for range default constructors for RangeIterator support 2015-06-29 23:21:24 +01:00
Daniel Kolesa f8c99b9f50 fix type traits aligned storage 2015-06-29 23:18:08 +01:00
Daniel Kolesa d8d8ea7151 put EnableIf in template type params where possible 2015-06-29 21:59:09 +01:00
Daniel Kolesa 2f16288671 fix includes 2015-06-29 21:33:18 +01:00
Daniel Kolesa b4146b0523 more reliable and accurate empty() checking in StreamRange 2015-06-29 18:54:25 +01:00
Daniel Kolesa 41c0ac0fdd return a pointer from the "at" methods (which is nullptr on non-existent items) 2015-06-28 22:16:13 +01:00
Daniel Kolesa 9f58a6c399 add octa::Maybe, representing optional values for simpler error handling 2015-06-28 21:28:54 +01:00
Daniel Kolesa 10fa69dcd1 constexpr initializer_list 2015-06-28 20:39:27 +01:00
Daniel Kolesa c53efaba92 fix hash table guard too 2015-06-28 16:05:27 +01:00
Daniel Kolesa 94daa4f76b fix include guards 2015-06-28 16:04:49 +01:00
Daniel Kolesa ba41989429 fixed include 2015-06-28 16:00:09 +01:00
Daniel Kolesa 36c264b4b0 make .cc the extension for source files and .hh the extension for header files 2015-06-28 15:39:04 +01:00
Daniel Kolesa 9831b15b8c rename some default functors 2015-06-27 15:00:16 +01:00