Description
I have a rather complex Arduino project where I use ArduinoJson. When using version 6.19.4 the code compiled without any problems. We have updated now to ArduinoJson 6.21.3 and get build errors. The first build error is "/ArduinoJson/Variant/ConverterImpl.hpp:283:51: error: 'std::string' has not been declared" and then as a result there is a massive number of other errors. The problem can be fixed by including <string> before ArduinoJson.h, however I believe that the ArduinoJson library should be able to manage its own dependencies.
I propose a fix in the "Reproduction Code" section.
Description I have a rather complex Arduino project where I use ArduinoJson. When using version 6.19.4 the code compiled without any problems. We have updated now to ArduinoJson 6.21.3 and get build errors. The first build error is "/ArduinoJson/Variant/ConverterImpl.hpp:283:51: error: 'std::string' has not been declared" and then as a result there is a massive number of other errors. The problem can be fixed by including
<string>
before ArduinoJson.h, however I believe that the ArduinoJson library should be able to manage its own dependencies.I propose a fix in the "Reproduction Code" section.
Troubleshooter's report
Environment
Reproduction code
Remarks I suggest to do the same for
<string_view>
and any other STL type used by ArduinoJson.