diff --git a/docs/Makefile b/docs/Makefile index 37ff1418c..7ceba27e2 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -9,15 +9,18 @@ all: create_output # where are the example cpp files EXAMPLES = $(wildcard examples/*.cpp) +cxx_standard = $(lastword c++11 $(filter c++%, $(subst ., ,$1))) + # create output from a stand-alone example file %.output: %.cpp - $(MAKE) $(<:.cpp=) CPPFLAGS="-I $(SRCDIR)" CXXFLAGS="-std=c++11" + @echo "standard $(call cxx_standard $(<:.cpp=))" + $(MAKE) $(<:.cpp=) CPPFLAGS="-I $(SRCDIR)" CXXFLAGS="-std=$(call cxx_standard,$(<:.cpp=)) -Wno-deprecated-declarations" ./$(<:.cpp=) > $@ rm $(<:.cpp=) # compare created output with current output of the example files %.test: %.cpp - $(MAKE) $(<:.cpp=) CPPFLAGS="-I $(SRCDIR)" CXXFLAGS="-std=c++11" + $(MAKE) $(<:.cpp=) CPPFLAGS="-I $(SRCDIR)" CXXFLAGS="-std=$(call cxx_standard,$(<:.cpp=)) -Wno-deprecated-declarations" ./$(<:.cpp=) > $@ diff $@ $(<:.cpp=.output) rm $(<:.cpp=) $@ diff --git a/docs/examples/at__keytype.cpp b/docs/examples/at__keytype.c++17.cpp similarity index 100% rename from docs/examples/at__keytype.cpp rename to docs/examples/at__keytype.c++17.cpp diff --git a/docs/examples/at__keytype.output b/docs/examples/at__keytype.c++17.output similarity index 100% rename from docs/examples/at__keytype.output rename to docs/examples/at__keytype.c++17.output diff --git a/docs/examples/at__keytype_const.cpp b/docs/examples/at__keytype_const.c++17.cpp similarity index 100% rename from docs/examples/at__keytype_const.cpp rename to docs/examples/at__keytype_const.c++17.cpp diff --git a/docs/examples/at__keytype_const.output b/docs/examples/at__keytype_const.c++17.output similarity index 100% rename from docs/examples/at__keytype_const.output rename to docs/examples/at__keytype_const.c++17.output diff --git a/docs/examples/contains__keytype.cpp b/docs/examples/contains__keytype.c++17.cpp similarity index 100% rename from docs/examples/contains__keytype.cpp rename to docs/examples/contains__keytype.c++17.cpp diff --git a/docs/examples/contains__keytype.output b/docs/examples/contains__keytype.c++17.output similarity index 100% rename from docs/examples/contains__keytype.output rename to docs/examples/contains__keytype.c++17.output diff --git a/docs/examples/count__keytype.cpp b/docs/examples/count__keytype.c++17.cpp similarity index 100% rename from docs/examples/count__keytype.cpp rename to docs/examples/count__keytype.c++17.cpp diff --git a/docs/examples/count__keytype.output b/docs/examples/count__keytype.c++17.output similarity index 100% rename from docs/examples/count__keytype.output rename to docs/examples/count__keytype.c++17.output diff --git a/docs/examples/erase__keytype.cpp b/docs/examples/erase__keytype.c++17.cpp similarity index 100% rename from docs/examples/erase__keytype.cpp rename to docs/examples/erase__keytype.c++17.cpp diff --git a/docs/examples/erase__keytype.output b/docs/examples/erase__keytype.c++17.output similarity index 100% rename from docs/examples/erase__keytype.output rename to docs/examples/erase__keytype.c++17.output diff --git a/docs/examples/find__keytype.cpp b/docs/examples/find__keytype.c++17.cpp similarity index 100% rename from docs/examples/find__keytype.cpp rename to docs/examples/find__keytype.c++17.cpp diff --git a/docs/examples/find__keytype.output b/docs/examples/find__keytype.c++17.output similarity index 100% rename from docs/examples/find__keytype.output rename to docs/examples/find__keytype.c++17.output diff --git a/docs/examples/operator_array__keytype.cpp b/docs/examples/operator_array__keytype.c++17.cpp similarity index 100% rename from docs/examples/operator_array__keytype.cpp rename to docs/examples/operator_array__keytype.c++17.cpp diff --git a/docs/examples/operator_array__keytype.output b/docs/examples/operator_array__keytype.c++17.output similarity index 100% rename from docs/examples/operator_array__keytype.output rename to docs/examples/operator_array__keytype.c++17.output diff --git a/docs/examples/operator_array__keytype_const.cpp b/docs/examples/operator_array__keytype_const.c++17.cpp similarity index 100% rename from docs/examples/operator_array__keytype_const.cpp rename to docs/examples/operator_array__keytype_const.c++17.cpp diff --git a/docs/examples/operator_array__keytype_const.output b/docs/examples/operator_array__keytype_const.c++17.output similarity index 100% rename from docs/examples/operator_array__keytype_const.output rename to docs/examples/operator_array__keytype_const.c++17.output diff --git a/docs/examples/operator_spaceship__const_reference.cpp b/docs/examples/operator_spaceship__const_reference.c++20.cpp similarity index 100% rename from docs/examples/operator_spaceship__const_reference.cpp rename to docs/examples/operator_spaceship__const_reference.c++20.cpp diff --git a/docs/examples/operator_spaceship__const_reference.output b/docs/examples/operator_spaceship__const_reference.c++20.output similarity index 100% rename from docs/examples/operator_spaceship__const_reference.output rename to docs/examples/operator_spaceship__const_reference.c++20.output diff --git a/docs/examples/operator_spaceship__scalartype.cpp b/docs/examples/operator_spaceship__scalartype.c++20.cpp similarity index 100% rename from docs/examples/operator_spaceship__scalartype.cpp rename to docs/examples/operator_spaceship__scalartype.c++20.cpp diff --git a/docs/examples/operator_spaceship__scalartype.output b/docs/examples/operator_spaceship__scalartype.c++20.output similarity index 100% rename from docs/examples/operator_spaceship__scalartype.output rename to docs/examples/operator_spaceship__scalartype.c++20.output diff --git a/docs/examples/value__keytype.cpp b/docs/examples/value__keytype.c++17.cpp similarity index 100% rename from docs/examples/value__keytype.cpp rename to docs/examples/value__keytype.c++17.cpp diff --git a/docs/examples/value__keytype.output b/docs/examples/value__keytype.c++17.output similarity index 100% rename from docs/examples/value__keytype.output rename to docs/examples/value__keytype.c++17.output diff --git a/docs/mkdocs/docs/api/basic_json/at.md b/docs/mkdocs/docs/api/basic_json/at.md index d36a42570..5e9504508 100644 --- a/docs/mkdocs/docs/api/basic_json/at.md +++ b/docs/mkdocs/docs/api/basic_json/at.md @@ -158,13 +158,13 @@ Strong exception safety: if an exception occurs, the original value stays intact exceptions that can be thrown. ```cpp - --8<-- "examples/at__keytype.cpp" + --8<-- "examples/at__keytype.c++17.cpp" ``` Output: ```json - --8<-- "examples/at__keytype.output" + --8<-- "examples/at__keytype.c++17.output" ``` ??? example "Example: (3) access specified object element using string_view with bounds checking" @@ -173,13 +173,13 @@ Strong exception safety: if an exception occurs, the original value stays intact that can be thrown. ```cpp - --8<-- "examples/at__keytype_const.cpp" + --8<-- "examples/at__keytype_const.c++17.cpp" ``` Output: ```json - --8<-- "examples/at__keytype_const.output" + --8<-- "examples/at__keytype_const.c++17.output" ``` ??? example "Example: (4) access specified element via JSON Pointer" diff --git a/docs/mkdocs/docs/api/basic_json/contains.md b/docs/mkdocs/docs/api/basic_json/contains.md index 9fffa585a..ba2c3df2d 100644 --- a/docs/mkdocs/docs/api/basic_json/contains.md +++ b/docs/mkdocs/docs/api/basic_json/contains.md @@ -88,13 +88,13 @@ Logarithmic in the size of the JSON object. The example shows how `contains()` is used. ```cpp - --8<-- "examples/contains__keytype.cpp" + --8<-- "examples/contains__keytype.c++17.cpp" ``` Output: ```json - --8<-- "examples/contains__keytype.output" + --8<-- "examples/contains__keytype.c++17.output" ``` ??? example "Example: (3) check with JSON pointer" diff --git a/docs/mkdocs/docs/api/basic_json/count.md b/docs/mkdocs/docs/api/basic_json/count.md index b6967ca3a..4f3a31055 100644 --- a/docs/mkdocs/docs/api/basic_json/count.md +++ b/docs/mkdocs/docs/api/basic_json/count.md @@ -63,13 +63,13 @@ This method always returns `0` when executed on a JSON type that is not an objec The example shows how `count()` is used. ```cpp - --8<-- "examples/count__keytype.cpp" + --8<-- "examples/count__keytype.c++17.cpp" ``` Output: ```json - --8<-- "examples/count__keytype.output" + --8<-- "examples/count__keytype.c++17.output" ``` ## Version history diff --git a/docs/mkdocs/docs/api/basic_json/erase.md b/docs/mkdocs/docs/api/basic_json/erase.md index 3129d5099..1187995b6 100644 --- a/docs/mkdocs/docs/api/basic_json/erase.md +++ b/docs/mkdocs/docs/api/basic_json/erase.md @@ -179,13 +179,13 @@ Strong exception safety: if an exception occurs, the original value stays intact The example shows the effect of `erase()` for different JSON types using an object key. ```cpp - --8<-- "examples/erase__keytype.cpp" + --8<-- "examples/erase__keytype.c++17.cpp" ``` Output: ```json - --8<-- "examples/erase__keytype.output" + --8<-- "examples/erase__keytype.c++17.output" ``` ??? example "Example: (5) remove element from a JSON array given an index" diff --git a/docs/mkdocs/docs/api/basic_json/find.md b/docs/mkdocs/docs/api/basic_json/find.md index 4e65f2f97..c64350718 100644 --- a/docs/mkdocs/docs/api/basic_json/find.md +++ b/docs/mkdocs/docs/api/basic_json/find.md @@ -67,13 +67,13 @@ This method always returns `end()` when executed on a JSON type that is not an o The example shows how `find()` is used. ```cpp - --8<-- "examples/find__keytype.cpp" + --8<-- "examples/find__keytype.c++17.cpp" ``` Output: ```json - --8<-- "examples/find__keytype.output" + --8<-- "examples/find__keytype.c++17.output" ``` ## See also diff --git a/docs/mkdocs/docs/api/basic_json/operator[].md b/docs/mkdocs/docs/api/basic_json/operator[].md index 209a0541f..ebc737e4b 100644 --- a/docs/mkdocs/docs/api/basic_json/operator[].md +++ b/docs/mkdocs/docs/api/basic_json/operator[].md @@ -173,13 +173,13 @@ Strong exception safety: if an exception occurs, the original value stays intact The example below shows how object elements can be read using the `[]` operator. ```cpp - --8<-- "examples/operator_array__keytype.cpp" + --8<-- "examples/operator_array__keytype.c++17.cpp" ``` Output: ```json - --8<-- "examples/operator_array__keytype.output" + --8<-- "examples/operator_array__keytype.c++17.output" ``` ??? example "Example: (3) access specified object element using string_view (const)" @@ -187,13 +187,13 @@ Strong exception safety: if an exception occurs, the original value stays intact The example below shows how object elements can be read using the `[]` operator. ```cpp - --8<-- "examples/operator_array__keytype_const.cpp" + --8<-- "examples/operator_array__keytype_const.c++17.cpp" ``` Output: ```json - --8<-- "examples/operator_array__keytype_const.output" + --8<-- "examples/operator_array__keytype_const.c++17.output" ``` ??? example "Example: (4) access specified element via JSON Pointer" diff --git a/docs/mkdocs/docs/api/basic_json/operator_spaceship.md b/docs/mkdocs/docs/api/basic_json/operator_spaceship.md index 5c89f4fd2..f5bf1cf35 100644 --- a/docs/mkdocs/docs/api/basic_json/operator_spaceship.md +++ b/docs/mkdocs/docs/api/basic_json/operator_spaceship.md @@ -62,13 +62,13 @@ Linear. The example demonstrates comparing several JSON values. ```cpp - --8<-- "examples/operator_spaceship__const_reference.cpp" + --8<-- "examples/operator_spaceship__const_reference.c++20.cpp" ``` Output: ```json - --8<-- "examples/operator_spaceship__const_reference.output" + --8<-- "examples/operator_spaceship__const_reference.c++20.output" ``` ??? example "Example: (2) comparing JSON values and scalars" @@ -76,13 +76,13 @@ Linear. The example demonstrates comparing several JSON values and scalars. ```cpp - --8<-- "examples/operator_spaceship__scalartype.cpp" + --8<-- "examples/operator_spaceship__scalartype.c++20.cpp" ``` Output: ```json - --8<-- "examples/operator_spaceship__scalartype.output" + --8<-- "examples/operator_spaceship__scalartype.c++20.output" ``` ## See also diff --git a/docs/mkdocs/docs/api/basic_json/value.md b/docs/mkdocs/docs/api/basic_json/value.md index d1a3bb898..b5fd14d1c 100644 --- a/docs/mkdocs/docs/api/basic_json/value.md +++ b/docs/mkdocs/docs/api/basic_json/value.md @@ -124,13 +124,13 @@ changes to any JSON value. The example below shows how object elements can be queried with a default value. ```cpp - --8<-- "examples/value__keytype.cpp" + --8<-- "examples/value__keytype.c++17.cpp" ``` Output: ```json - --8<-- "examples/value__keytype.output" + --8<-- "examples/value__keytype.c++17.output" ``` ??? example "Example: (3) access specified object element via JSON Pointer with default value"