Commit Graph

545 Commits

Author SHA1 Message Date
Martchus 236309971d Add dereferenceMaybe() 2018-07-01 23:22:33 +02:00
Martchus 97aac2424a Reduce block-nesting in joinStrings() 2018-07-01 23:21:06 +02:00
Martchus 6dcd39f1ac Set CXX_STANDARD on header-only lib target for Qt Creator 2018-06-26 00:05:26 +02:00
Martchus 3a6bbb0115 Allow enabling GUI config even when no specific sources present
Useful when GUI specific code is only wrapped using #ifdef so
there are no extra files.
2018-06-24 20:47:19 +02:00
Martchus 79679c0f42 Improve fake target for Qt Creator
This target is required so files for header-only libs
show up in Qt Creator. So far it was just a custom target.
However, this way include directories and build flags are
not correctly passed to the code model. So creating an
actual library now.
2018-06-24 20:43:08 +02:00
Martchus 27d5041e06 Add Traits::IsSpecializingAnyOf 2018-06-24 20:13:41 +02:00
Martchus 0fb92e3685 Add Traits::None 2018-06-23 14:33:00 +02:00
Martchus 7b01938ece Add {TimeSpan,DateTime}::ticks() for easier read/write 2018-06-23 14:32:46 +02:00
Martchus e0fee70d58 Print vector<char> and similar in hex notation on assert fail 2018-06-21 23:27:05 +02:00
Martchus 0c7e7eb91d Fix BinaryReader::read(int32 &one32BitInt) 2018-06-21 23:25:14 +02:00
Martchus 30adb1bc47 Add Traits::IsResizable 2018-06-20 23:07:08 +02:00
Martchus e4bf7142f5 Add Traits::Is{Any,None}Of 2018-06-20 23:07:08 +02:00
Martchus 5deb077fe5 Extend Binary{Reader,Writer} to ease binary (de)serialization
To implement reflection-enabled binary (de)serialization
in https://github.com/Martchus/reflective-rapidjson.
2018-06-20 23:07:08 +02:00
Martchus b77607f3e0 Rename META_REQUIRED_FEATURES
Because those features are actually not required.
2018-06-03 22:15:20 +02:00
Martchus 52734ebf51 Make use of thread_local optional
Because it doesn't seem to be implemented for
apple-darwin targets.
2018-06-03 22:14:22 +02:00
Martchus 4a69db787d Allow to create header for feature detection
The header will only contain some preprocessor conditions.
CMake will *not* do checks with the current compiler.
2018-06-03 21:49:01 +02:00
Martchus a21ed51505 Improve coding style in toFloat{32,64}() functions
* Use const
* Don't duplicate BE/LE branches
2018-05-31 22:45:45 +02:00
Martchus d174f3f157 Make toInt() functions constexpr 2018-05-31 22:43:35 +02:00
Martchus 7125e52e87 Make error messages in stringconversion.h more verbose 2018-05-31 22:28:38 +02:00
Martchus f4920abebc Fix thread-safety of character set conversion functions 2018-05-31 01:24:04 +02:00
Martchus 5bc2ca87e0 Don't use size factor for conversion from UTF-8 to Latin-1 2018-05-31 01:19:56 +02:00
Martchus d9f2ad7260 Fix warnings in character set conversion functions 2018-05-31 01:19:34 +02:00
Martchus 89a4c2f33a Skip suggestions for pre-defined values if none assigned 2018-05-11 18:13:14 +02:00
Martchus b69b841fa3 Prevent huge memory allocation for Damerau-Levenshtein algo 2018-05-11 16:15:16 +02:00
Martchus 5e8d8cb7d1 Show dashes in suggestions 2018-05-11 16:15:02 +02:00
Martchus 24720bbbc1 Fix passing cursor position to findSuggestions() 2018-05-11 15:51:30 +02:00
Martchus 5eb3e2aa75 Fix suggestion if only one available 2018-05-11 15:29:10 +02:00
Martchus 1aa8b387e1 Apply clang-format 2018-05-08 00:35:51 +02:00
Martchus f0b777207e Fix dependency version under GCC 8 2018-05-08 00:35:41 +02:00
Martchus a4435bbcf3 Fix usage of enable_if with GCC 8
Seems like the trick with the three dots isn't working
with GCC 8 anymore. So let's make it a default template
parameter then.

Not sure whether GCC 8 is here correct and whether this
workaround causes further trouble.
2018-05-07 23:22:43 +02:00
Martchus 8ef92cbf47 Use Levenshtein algo to provide suggestions if arg not found 2018-05-07 21:59:23 +02:00
Martchus 44f0206a13 Refactor ArgumentReader::read()
* Use return-code for error handling
* Improve documentation/comments
* Improve const correctness
2018-05-07 20:04:30 +02:00
Martchus 0e8dcbecae Refactor value completion in ArgumentParser::printBashCompletion() 2018-05-06 00:36:37 +02:00
Martchus 872ee49979 Refactor ArgumentParser::printBashCompletion() 2018-05-06 00:26:42 +02:00
Martchus 3c04514649 Ensure stack-allocated distance array is initialized 2018-05-06 00:26:08 +02:00
Martchus 14f906cc6b Update README.md 2018-05-05 23:28:21 +02:00
Martchus 429de98836 Add algorithm for computing Damerau–Levenshtein distance 2018-05-05 23:26:53 +02:00
Martchus 034b8a75d1 Add min(), max() for any number of arguments 2018-05-05 23:06:51 +02:00
Martchus c26e84ff8c Add TODOs for math utilities 2018-05-05 23:06:15 +02:00
Martchus 25057fa8e3 Add MultiArray class which provides an N-dimensional array 2018-05-05 23:05:46 +02:00
Martchus 52bf075317 Move creation of srcdirref and testfiles dir to BasicConfig
Those make testing more convenient and are also useful when
there's no test target, eg. when testing syncthingtray with
mocked configuration.
2018-05-01 23:59:28 +02:00
Martchus 94e76f5a1a Add experimental methods to convert argument values
* Currently lacks error handling
* Needs testing
2018-04-28 13:07:48 +02:00
Martchus 26a286a7db Prevent installation of private header 2018-04-28 12:15:34 +02:00
Martchus c8bf068e74 Reorder method declarations in Argument and ArgumentParser
So it becomes clear which parts might be moved to a separate class
to prevent Argument from becoming to big.
2018-04-28 12:08:12 +02:00
Martchus 64be5bce63 Document the whole story behind catchiofailure.cpp 2018-04-14 14:48:36 +02:00
Martchus 51e87f3740 Don't wrongly detect libstdc++ 6.4 as >= 7
6.4 has been release after 20170502 but still throws
ios_base::failure with old ABI. It is not a good idea
to use the timestamp to distinguish release versions.

Note that _GLIBCXX_RELEASE is not defined in older
GCC versions. But if the macro is not present, we also
know that it will throw the old version.
2018-04-14 14:43:35 +02:00
Martchus 557856dc5c Apply clang-format 2018-04-01 23:08:41 +02:00
Martchus 8bc3cf9615 Add phrase for overriding current line 2018-04-01 23:08:31 +02:00
Martchus 76ee4a158b Add color overload for ANSI escape codes 2018-03-25 20:02:21 +02:00
Martchus e2e4b4641f Add EscapeCodes::Strikethrough 2018-03-25 20:00:01 +02:00