Commit graph

958 commits

Author SHA1 Message Date
Niels Lohmann 61cc07ff38
📝 some documentation 2017-10-27 16:07:04 +02:00
Niels Lohmann 77f8e2f987 Merge pull request #795 from jseward/develop
Add transparent comparator and perfect forwarding support to find() and count()
2017-10-27 11:47:23 +02:00
Jamie Seward 992c836b30 Add missing spaces 2017-10-24 00:14:25 -07:00
Jamie Seward 715c98b404 Remove extra spaces 2017-10-24 00:06:22 -07:00
Jamie Seward 6c9a401ebc Remove old non-perfect forwarding find and count 2017-10-24 00:01:56 -07:00
Jamie Seward 73b1629a15 Remove tabs for spaces 2017-10-23 23:45:39 -07:00
Jamie Seward 33c6511dd0 Remove JSON_HAS_STRING_VIEW
Instead implement @gregmarr's PR comments that perfect forwarding should be used. Also cleaned up cpp language standard detection.
2017-10-23 00:43:26 -07:00
Niels Lohmann b0c380b0f8
📝 cleanup after the last PRs 2017-10-22 09:12:35 +02:00
Niels Lohmann be4fba7baf
Merge branch 'develop' of https://github.com/nlohmann/json into develop 2017-10-22 08:53:46 +02:00
Niels Lohmann f193427e91
🔨 some simplifications 2017-10-22 08:53:43 +02:00
Niels Lohmann ef40673acb Merge branch 'develop' into develop-simplify-istream 2017-10-22 08:52:15 +02:00
Jamie Seward d468f8c4e6 Use consistent logic to determine if string_view exists 2017-10-21 16:36:05 -07:00
Jamie Seward 59cde1ad6e Fix for _HAS_CXX17 == 0
Copied from solution to https://github.com/nlohmann/json/issues/464
2017-10-21 16:29:37 -07:00
Jamie Seward 1a66679929 Add string_view support
This avoids unnecessary string copies on often used
find().
2017-10-21 15:20:13 -07:00
Sonu Lohani 92da334862 Error : 'identifier "size_t" is undefined' in linux 2017-10-21 12:52:44 +05:30
Jamie Seward 917d9d8bc3 Fix Visual Studio 2017 warnings 2017-10-16 23:23:55 -07:00
Perry Kundert a8cc7a1bc8 Consistently use std::char_traits int_type-->char conversion intrinsics 2017-10-16 08:06:10 -07:00
Jamie Seward 8ba7f69ab4 Fix whitespace 2017-10-16 00:49:59 -07:00
Jamie Seward 8a4af820c7 Fix warning C4706 2017-10-16 00:41:58 -07:00
Niels Lohmann d300a8e268
🚨 fixed warnings #776 2017-10-13 08:46:29 +02:00
Perry Kundert 23440eb86e Remove outdated commentary about the value of eof(), retain input type
o We assume the same character int_type as the unerlying std::istream
o There are no assumptions on the value of eof(), other than that it
  will not be a valid unsigned char value.
o To retain performance, we do not allow swapping out the underlying
  std::streambuf during our use of the std::istream for parsing.
2017-10-06 12:54:43 -07:00
Perry Kundert 45e1e3d48a Revert some unnecessary member initializer changes. 2017-10-06 07:53:31 -07:00
Perry Kundert 5e480b56d8 Further simplify character type handling 2017-10-06 07:37:49 -07:00
Perry Kundert 1b43a45bec Implement correct handling of std::streambuf int_type, eof()
o Make no assumptions about eof(), other than that it is somewhere
  outside of the valid range of char_type.
2017-10-05 16:16:41 -07:00
Perry Kundert 184dab60e6 Accelerate access to underlying std::istream streambuf 2017-10-05 16:16:41 -07:00
Perry Kundert f775922ca8 Specify initializers for yytest, token_string using initializer-lists
o We can retain -Weffc++ and specify default initializers by using
  initializer lists.  The risks are low (of additional non-conformat
  compilers), because there is already one other such initialization
  used in the code-base.
2017-10-05 16:16:41 -07:00
Perry Kundert 546e148b24 Further performance improvements, and corrections in get_token_string
o An (-'ve valued, typically -1) EOF must never be allowed in
  token_string, as it be converted to 255 -- a legitimate value.
o Comparing against a specific eof() (-1, typically) is more costly than
  detecting +'ve/-'ve.  Since EOF is the only non-positive value allowed
  we can use the simpler test.
o Removed unnecessary test for token_string size, as it is already
  tested in the method, and must never occur in correct code; used an
  assert instead.
2017-10-05 16:16:41 -07:00
Perry Kundert 8665e25942 Rename get_string to move_string to imply side-effect 2017-10-05 16:16:41 -07:00
Perry Kundert e0d890cc23 Corrected unnnecessary const restriction on returned std::string 2017-10-05 16:16:41 -07:00
Perry Kundert 97a388802d Improve performance by constructing yytext as a std::string
o Return its contents when necessary.  In many cases, this avoids
  construction of multiple copies of the yytext token.  Exceeds
  performance of current develop branch.
2017-10-05 16:15:46 -07:00
Perry Kundert 7c523338c5 Remove unnnecessary NUL termination of yytext (as it may contain NULs) 2017-10-05 16:01:41 -07:00
Perry Kundert 14ca1f6f09 Restore istream performance #764
o Use std::streambuf I/O instead of std::istream; does not maintain
  (unused) istream flags.
o Further simplify get/unget handling.
o Restore original handling of NUL in input stream; ignored during
  token_string escaping.
2017-10-05 16:01:41 -07:00
Perry Kundert 12efeadc2e Further simplify istream handling; use native unget 2017-10-05 16:01:41 -07:00
Perry Kundert 90adf6ec20 Simplify get_token_string, unnecessary buffering, handle Byte Order Mark 2017-10-05 16:01:41 -07:00
Niels Lohmann 5cb6d7187d
🚨 fixing last warning in #755 2017-10-04 17:28:35 +02:00
Niels Lohmann 54bd1b5124
Merge branch 'develop' into feature/issue698 2017-10-03 17:23:05 +02:00
Niels Lohmann 7435d54e97
🔨 clean up 2017-10-02 23:06:41 +02:00
Niels Lohmann 4912231450
Merge branch 'develop' into feature/issue698 2017-10-02 18:25:25 +02:00
Niels Lohmann b91805e1f0
🚨 removing a compiler warning #755 2017-10-02 18:11:36 +02:00
Niels Lohmann f89f8b2d0b
Merge branch 'develop' into feature/issue698 2017-10-02 17:47:53 +02:00
Niels Lohmann 8be303d4fb
🏁 fixing a min() call for MSVC #762 2017-10-02 13:54:14 +02:00
Niels Lohmann 1df836ce40
removed call to std::signbit #761 2017-10-01 15:48:29 +02:00
Niels Lohmann 8af49d4be5
🚨 removing compiler warnings #755 2017-09-30 11:00:26 +02:00
Niels Lohmann 1a66527dca
📝 fixed documentation #745 2017-09-30 10:18:18 +02:00
Niels Lohmann 295d65ada7
Merge branch 'develop' into feature/issue698 2017-09-10 01:13:43 +02:00
Niels Lohmann fcba9ec537
🔨 clean up 2017-09-10 01:12:03 +02:00
Niels Lohmann 31ce7e1e59
Merge branch 'develop' into feature/issue698 2017-09-09 11:05:20 +02:00
Niels Lohmann c607b5c2ac
📝 improved documentation 2017-09-06 17:14:06 +02:00
Niels Lohmann 91e0032853
📝 improved documentation 2017-08-29 23:46:26 +02:00
Niels Lohmann 15e757c42b
🔨 trying to fix memory issue with valarray 2017-08-27 10:41:39 +02:00