Pārlūkot izejas kodu

Drop support for C++98/C++03 (closes #1820)

Benoit Blanchon 2 gadi atpakaļ
vecāks
revīzija
407fc2cd45
4 mainītis faili ar 13 papildinājumiem un 1 dzēšanām
  1. 5 0
      CHANGELOG.md
  2. 3 0
      extras/fuzzing/CMakeLists.txt
  3. 1 1
      extras/fuzzing/Makefile
  4. 4 0
      src/ArduinoJson.hpp

+ 5 - 0
CHANGELOG.md

@@ -1,6 +1,11 @@
 ArduinoJson: change log
 =======================
 
+HEAD
+----
+
+* Drop support for C++98/C++03. Minimum required is C++11.
+
 v6.20.1 (2023-02-08)
 -------
 

+ 3 - 0
extras/fuzzing/CMakeLists.txt

@@ -2,6 +2,9 @@
 # Copyright © 2014-2022, Benoit BLANCHON
 # MIT License
 
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
 if(MSVC)
 	add_compile_options(-D_CRT_SECURE_NO_WARNINGS)
 endif()

+ 1 - 1
extras/fuzzing/Makefile

@@ -1,6 +1,6 @@
 # CAUTION: this file is invoked by https://github.com/google/oss-fuzz
 
-CXXFLAGS += -I../../src -DARDUINOJSON_DEBUG=1
+CXXFLAGS += -I../../src -DARDUINOJSON_DEBUG=1 -std=c++11
 
 all: \
 	$(OUT)/json_fuzzer \

+ 4 - 0
src/ArduinoJson.hpp

@@ -4,6 +4,10 @@
 
 #pragma once
 
+#if __cplusplus < 201103L && (!defined(_MSC_VER) || _MSC_VER < 1910)
+#  error ArduinoJson requires C++11 or newer. Configure your compiler for C++11 or downgrade ArduinoJson to 6.20.
+#endif
+
 #include "ArduinoJson/Configuration.hpp"
 
 // Include Arduino.h before stdlib.h to avoid conflict with atexit()