Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
json
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
json
Commits
d359fd3a
Unverified
Commit
d359fd3a
authored
6 years ago
by
Niels Lohmann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
trying nodiscard attribute #1433
parent
b9a39b38
No related merge requests found
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
49 additions
and
3 deletions
+49
-3
include/nlohmann/detail/macro_scope.hpp
include/nlohmann/detail/macro_scope.hpp
+9
-0
include/nlohmann/detail/macro_unscope.hpp
include/nlohmann/detail/macro_unscope.hpp
+1
-0
include/nlohmann/json.hpp
include/nlohmann/json.hpp
+13
-0
single_include/nlohmann/json.hpp
single_include/nlohmann/json.hpp
+23
-0
test/src/unit-cbor.cpp
test/src/unit-cbor.cpp
+1
-1
test/src/unit-readme.cpp
test/src/unit-readme.cpp
+1
-1
test/src/unit-ubjson.cpp
test/src/unit-ubjson.cpp
+1
-1
No files found.
include/nlohmann/detail/macro_scope.hpp
View file @
d359fd3a
...
...
@@ -37,6 +37,15 @@
#define JSON_DEPRECATED
#endif
// allow for portable nodiscard warnings
#if defined(__has_cpp_attribute) && __has_cpp_attribute(nodiscard)
#define JSON_NODISCARD [[nodiscard]]
#elif defined(__has_cpp_attribute) && __has_cpp_attribute(gnu::warn_unused_result)
#define JSON_NODISCARD [[gnu::warn_unused_result]]
#else
#define JSON_NODISCARD
#endif
// allow to disable exceptions
#if (defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND)) && !defined(JSON_NOEXCEPTION)
#define JSON_THROW(exception) throw exception
...
...
This diff is collapsed.
Click to expand it.
include/nlohmann/detail/macro_unscope.hpp
View file @
d359fd3a
...
...
@@ -16,6 +16,7 @@
#undef JSON_LIKELY
#undef JSON_UNLIKELY
#undef JSON_DEPRECATED
#undef JSON_NODISCARD
#undef JSON_HAS_CPP_14
#undef JSON_HAS_CPP_17
#undef NLOHMANN_BASIC_JSON_TPL_DECLARATION
...
...
This diff is collapsed.
Click to expand it.
include/nlohmann/json.hpp
View file @
d359fd3a
...
...
@@ -317,6 +317,7 @@ class basic_json
@since 2.1.0
*/
JSON_NODISCARD
static
basic_json
meta
()
{
basic_json
result
;
...
...
@@ -1489,6 +1490,7 @@ class basic_json
@since version 1.0.0
*/
JSON_NODISCARD
static
basic_json
array
(
initializer_list_t
init
=
{})
{
return
basic_json
(
init
,
false
,
value_t
::
array
);
...
...
@@ -1532,6 +1534,7 @@ class basic_json
@since version 1.0.0
*/
JSON_NODISCARD
static
basic_json
object
(
initializer_list_t
init
=
{})
{
return
basic_json
(
init
,
false
,
value_t
::
object
);
...
...
@@ -6051,6 +6054,7 @@ class basic_json
@since version 2.0.3 (contiguous containers)
*/
JSON_NODISCARD
static
basic_json
parse
(
detail
::
input_adapter
&&
i
,
const
parser_callback_t
cb
=
nullptr
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -6826,6 +6830,7 @@ class basic_json
@a strict parameter since 3.0.0; added @a allow_exceptions parameter
since 3.2.0
*/
JSON_NODISCARD
static
basic_json
from_cbor
(
detail
::
input_adapter
&&
i
,
const
bool
strict
=
true
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -6841,6 +6846,7 @@ class basic_json
*/
template
<
typename
A1
,
typename
A2
,
detail
::
enable_if_t
<
std
::
is_constructible
<
detail
::
input_adapter
,
A1
,
A2
>
::
value
,
int
>
=
0
>
JSON_NODISCARD
static
basic_json
from_cbor
(
A1
&&
a1
,
A2
&&
a2
,
const
bool
strict
=
true
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -6933,6 +6939,7 @@ class basic_json
@a strict parameter since 3.0.0; added @a allow_exceptions parameter
since 3.2.0
*/
JSON_NODISCARD
static
basic_json
from_msgpack
(
detail
::
input_adapter
&&
i
,
const
bool
strict
=
true
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -6948,6 +6955,7 @@ class basic_json
*/
template
<
typename
A1
,
typename
A2
,
detail
::
enable_if_t
<
std
::
is_constructible
<
detail
::
input_adapter
,
A1
,
A2
>
::
value
,
int
>
=
0
>
JSON_NODISCARD
static
basic_json
from_msgpack
(
A1
&&
a1
,
A2
&&
a2
,
const
bool
strict
=
true
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -7019,6 +7027,7 @@ class basic_json
@since version 3.1.0; added @a allow_exceptions parameter since 3.2.0
*/
JSON_NODISCARD
static
basic_json
from_ubjson
(
detail
::
input_adapter
&&
i
,
const
bool
strict
=
true
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -7034,6 +7043,7 @@ class basic_json
*/
template
<
typename
A1
,
typename
A2
,
detail
::
enable_if_t
<
std
::
is_constructible
<
detail
::
input_adapter
,
A1
,
A2
>
::
value
,
int
>
=
0
>
JSON_NODISCARD
static
basic_json
from_ubjson
(
A1
&&
a1
,
A2
&&
a2
,
const
bool
strict
=
true
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -7104,6 +7114,7 @@ class basic_json
@sa @ref from_ubjson(detail::input_adapter&&, const bool, const bool) for the
related UBJSON format
*/
JSON_NODISCARD
static
basic_json
from_bson
(
detail
::
input_adapter
&&
i
,
const
bool
strict
=
true
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -7119,6 +7130,7 @@ class basic_json
*/
template
<
typename
A1
,
typename
A2
,
detail
::
enable_if_t
<
std
::
is_constructible
<
detail
::
input_adapter
,
A1
,
A2
>
::
value
,
int
>
=
0
>
JSON_NODISCARD
static
basic_json
from_bson
(
A1
&&
a1
,
A2
&&
a2
,
const
bool
strict
=
true
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -7710,6 +7722,7 @@ class basic_json
@since version 2.0.0
*/
JSON_NODISCARD
static
basic_json
diff
(
const
basic_json
&
source
,
const
basic_json
&
target
,
const
std
::
string
&
path
=
""
)
{
...
...
This diff is collapsed.
Click to expand it.
single_include/nlohmann/json.hpp
View file @
d359fd3a
...
...
@@ -152,6 +152,15 @@ using json = basic_json<>;
#define JSON_DEPRECATED
#endif
// allow for portable nodiscard warnings
#if defined(__has_cpp_attribute) && __has_cpp_attribute(nodiscard)
#define JSON_NODISCARD [[nodiscard]]
#elif defined(__has_cpp_attribute) && __has_cpp_attribute(gnu::warn_unused_result)
#define JSON_NODISCARD [[gnu::warn_unused_result]]
#else
#define JSON_NODISCARD
#endif
// allow to disable exceptions
#if (defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND)) && !defined(JSON_NOEXCEPTION)
#define JSON_THROW(exception) throw exception
...
...
@@ -12793,6 +12802,7 @@ class basic_json
@since 2.1.0
*/
JSON_NODISCARD
static
basic_json
meta
()
{
basic_json
result
;
...
...
@@ -13965,6 +13975,7 @@ class basic_json
@since version 1.0.0
*/
JSON_NODISCARD
static
basic_json
array
(
initializer_list_t
init
=
{})
{
return
basic_json
(
init
,
false
,
value_t
::
array
);
...
...
@@ -14008,6 +14019,7 @@ class basic_json
@since version 1.0.0
*/
JSON_NODISCARD
static
basic_json
object
(
initializer_list_t
init
=
{})
{
return
basic_json
(
init
,
false
,
value_t
::
object
);
...
...
@@ -18527,6 +18539,7 @@ class basic_json
@since version 2.0.3 (contiguous containers)
*/
JSON_NODISCARD
static
basic_json
parse
(
detail
::
input_adapter
&&
i
,
const
parser_callback_t
cb
=
nullptr
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -19302,6 +19315,7 @@ class basic_json
@a strict parameter since 3.0.0; added @a allow_exceptions parameter
since 3.2.0
*/
JSON_NODISCARD
static
basic_json
from_cbor
(
detail
::
input_adapter
&&
i
,
const
bool
strict
=
true
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -19317,6 +19331,7 @@ class basic_json
*/
template
<
typename
A1
,
typename
A2
,
detail
::
enable_if_t
<
std
::
is_constructible
<
detail
::
input_adapter
,
A1
,
A2
>
::
value
,
int
>
=
0
>
JSON_NODISCARD
static
basic_json
from_cbor
(
A1
&&
a1
,
A2
&&
a2
,
const
bool
strict
=
true
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -19409,6 +19424,7 @@ class basic_json
@a strict parameter since 3.0.0; added @a allow_exceptions parameter
since 3.2.0
*/
JSON_NODISCARD
static
basic_json
from_msgpack
(
detail
::
input_adapter
&&
i
,
const
bool
strict
=
true
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -19424,6 +19440,7 @@ class basic_json
*/
template
<
typename
A1
,
typename
A2
,
detail
::
enable_if_t
<
std
::
is_constructible
<
detail
::
input_adapter
,
A1
,
A2
>
::
value
,
int
>
=
0
>
JSON_NODISCARD
static
basic_json
from_msgpack
(
A1
&&
a1
,
A2
&&
a2
,
const
bool
strict
=
true
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -19495,6 +19512,7 @@ class basic_json
@since version 3.1.0; added @a allow_exceptions parameter since 3.2.0
*/
JSON_NODISCARD
static
basic_json
from_ubjson
(
detail
::
input_adapter
&&
i
,
const
bool
strict
=
true
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -19510,6 +19528,7 @@ class basic_json
*/
template
<
typename
A1
,
typename
A2
,
detail
::
enable_if_t
<
std
::
is_constructible
<
detail
::
input_adapter
,
A1
,
A2
>
::
value
,
int
>
=
0
>
JSON_NODISCARD
static
basic_json
from_ubjson
(
A1
&&
a1
,
A2
&&
a2
,
const
bool
strict
=
true
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -19580,6 +19599,7 @@ class basic_json
@sa @ref from_ubjson(detail::input_adapter&&, const bool, const bool) for the
related UBJSON format
*/
JSON_NODISCARD
static
basic_json
from_bson
(
detail
::
input_adapter
&&
i
,
const
bool
strict
=
true
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -19595,6 +19615,7 @@ class basic_json
*/
template
<
typename
A1
,
typename
A2
,
detail
::
enable_if_t
<
std
::
is_constructible
<
detail
::
input_adapter
,
A1
,
A2
>
::
value
,
int
>
=
0
>
JSON_NODISCARD
static
basic_json
from_bson
(
A1
&&
a1
,
A2
&&
a2
,
const
bool
strict
=
true
,
const
bool
allow_exceptions
=
true
)
...
...
@@ -20186,6 +20207,7 @@ class basic_json
@since version 2.0.0
*/
JSON_NODISCARD
static
basic_json
diff
(
const
basic_json
&
source
,
const
basic_json
&
target
,
const
std
::
string
&
path
=
""
)
{
...
...
@@ -20505,6 +20527,7 @@ inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std
#undef JSON_LIKELY
#undef JSON_UNLIKELY
#undef JSON_DEPRECATED
#undef JSON_NODISCARD
#undef JSON_HAS_CPP_14
#undef JSON_HAS_CPP_17
#undef NLOHMANN_BASIC_JSON_TPL_DECLARATION
...
...
This diff is collapsed.
Click to expand it.
test/src/unit-cbor.cpp
View file @
d359fd3a
...
...
@@ -1962,7 +1962,7 @@ TEST_CASE("all CBOR first bytes", "[!throws]")
try
{
json
::
from_cbor
(
std
::
vector
<
uint8_t
>
(
1
,
byte
));
auto
res
=
json
::
from_cbor
(
std
::
vector
<
uint8_t
>
(
1
,
byte
));
}
catch
(
const
json
::
parse_error
&
e
)
{
...
...
This diff is collapsed.
Click to expand it.
test/src/unit-readme.cpp
View file @
d359fd3a
...
...
@@ -305,7 +305,7 @@ TEST_CASE("README", "[hide]")
// }
// calculate a JSON patch from two JSON values
json
::
diff
(
j_result
,
j_original
);
auto
res
=
json
::
diff
(
j_result
,
j_original
);
// [
// { "op":" replace", "path": "/baz", "value": ["one", "two", "three"] },
// { "op":"remove","path":"/hello" },
...
...
This diff is collapsed.
Click to expand it.
test/src/unit-ubjson.cpp
View file @
d359fd3a
...
...
@@ -2128,7 +2128,7 @@ TEST_CASE("all UBJSON first bytes", "[!throws]")
try
{
json
::
from_ubjson
(
std
::
vector
<
uint8_t
>
(
1
,
byte
));
auto
res
=
json
::
from_ubjson
(
std
::
vector
<
uint8_t
>
(
1
,
byte
));
}
catch
(
const
json
::
parse_error
&
e
)
{
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment