From e2bd7abb33b36448c9f54fb4bb95d539ca37d959 Mon Sep 17 00:00:00 2001 From: Florian Albrechtskirchinger Date: Sun, 31 Jul 2022 09:16:49 +0200 Subject: [PATCH] mkdocs: encode required C++ standard in example files --- docs/Makefile | 7 +++++-- docs/examples/{at__keytype.cpp => at__keytype.c++17.cpp} | 0 .../{at__keytype.output => at__keytype.c++17.output} | 0 ...{at__keytype_const.cpp => at__keytype_const.c++17.cpp} | 0 ...eytype_const.output => at__keytype_const.c++17.output} | 0 ...{contains__keytype.cpp => contains__keytype.c++17.cpp} | 0 ...ins__keytype.output => contains__keytype.c++17.output} | 0 .../{count__keytype.cpp => count__keytype.c++17.cpp} | 0 ...{count__keytype.output => count__keytype.c++17.output} | 0 .../{erase__keytype.cpp => erase__keytype.c++17.cpp} | 0 ...{erase__keytype.output => erase__keytype.c++17.output} | 0 .../{find__keytype.cpp => find__keytype.c++17.cpp} | 0 .../{find__keytype.output => find__keytype.c++17.output} | 0 ...ray__keytype.cpp => operator_array__keytype.c++17.cpp} | 0 ...eytype.output => operator_array__keytype.c++17.output} | 0 ..._const.cpp => operator_array__keytype_const.c++17.cpp} | 0 ....output => operator_array__keytype_const.c++17.output} | 0 ....cpp => operator_spaceship__const_reference.c++20.cpp} | 0 ...t => operator_spaceship__const_reference.c++20.output} | 0 ...rtype.cpp => operator_spaceship__scalartype.c++20.cpp} | 0 ...output => operator_spaceship__scalartype.c++20.output} | 0 .../{value__keytype.cpp => value__keytype.c++17.cpp} | 0 ...{value__keytype.output => value__keytype.c++17.output} | 0 docs/mkdocs/docs/api/basic_json/at.md | 8 ++++---- docs/mkdocs/docs/api/basic_json/contains.md | 4 ++-- docs/mkdocs/docs/api/basic_json/count.md | 4 ++-- docs/mkdocs/docs/api/basic_json/erase.md | 4 ++-- docs/mkdocs/docs/api/basic_json/find.md | 4 ++-- docs/mkdocs/docs/api/basic_json/operator[].md | 8 ++++---- docs/mkdocs/docs/api/basic_json/operator_spaceship.md | 8 ++++---- docs/mkdocs/docs/api/basic_json/value.md | 4 ++-- 31 files changed, 27 insertions(+), 24 deletions(-) rename docs/examples/{at__keytype.cpp => at__keytype.c++17.cpp} (100%) rename docs/examples/{at__keytype.output => at__keytype.c++17.output} (100%) rename docs/examples/{at__keytype_const.cpp => at__keytype_const.c++17.cpp} (100%) rename docs/examples/{at__keytype_const.output => at__keytype_const.c++17.output} (100%) rename docs/examples/{contains__keytype.cpp => contains__keytype.c++17.cpp} (100%) rename docs/examples/{contains__keytype.output => contains__keytype.c++17.output} (100%) rename docs/examples/{count__keytype.cpp => count__keytype.c++17.cpp} (100%) rename docs/examples/{count__keytype.output => count__keytype.c++17.output} (100%) rename docs/examples/{erase__keytype.cpp => erase__keytype.c++17.cpp} (100%) rename docs/examples/{erase__keytype.output => erase__keytype.c++17.output} (100%) rename docs/examples/{find__keytype.cpp => find__keytype.c++17.cpp} (100%) rename docs/examples/{find__keytype.output => find__keytype.c++17.output} (100%) rename docs/examples/{operator_array__keytype.cpp => operator_array__keytype.c++17.cpp} (100%) rename docs/examples/{operator_array__keytype.output => operator_array__keytype.c++17.output} (100%) rename docs/examples/{operator_array__keytype_const.cpp => operator_array__keytype_const.c++17.cpp} (100%) rename docs/examples/{operator_array__keytype_const.output => operator_array__keytype_const.c++17.output} (100%) rename docs/examples/{operator_spaceship__const_reference.cpp => operator_spaceship__const_reference.c++20.cpp} (100%) rename docs/examples/{operator_spaceship__const_reference.output => operator_spaceship__const_reference.c++20.output} (100%) rename docs/examples/{operator_spaceship__scalartype.cpp => operator_spaceship__scalartype.c++20.cpp} (100%) rename docs/examples/{operator_spaceship__scalartype.output => operator_spaceship__scalartype.c++20.output} (100%) rename docs/examples/{value__keytype.cpp => value__keytype.c++17.cpp} (100%) rename docs/examples/{value__keytype.output => value__keytype.c++17.output} (100%) 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"