'Stream' does not name a type
Created by: xoseperez
Hi I'm using the ArduinoJson library for several projects and one of them started failing after latests 5.8.0 release with this error:
In file included from .piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../Serialization/../StringTraits/StringTraits.hpp:37:0,
from .piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../Serialization/DynamicStringBuilder.hpp:11,
from .piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../Serialization/JsonPrintable.hpp:13,
from .piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../JsonVariantBase.hpp:12,
from .piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../JsonVariant.hpp:16,
from .piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../JsonBuffer.hpp:14,
from .piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/JsonParser.hpp:10,
from .piolibdeps/ArduinoJson_ID64/include/ArduinoJson/JsonBufferBase.hpp:10,
from .piolibdeps/ArduinoJson_ID64/include/ArduinoJson/DynamicJsonBuffer.hpp:10,
from .piolibdeps/ArduinoJson_ID64/include/ArduinoJson.hpp:10,
from .piolibdeps/ArduinoJson_ID64/include/ArduinoJson.h:8,
from .piolibdeps/ArduinoJson_ID64/ArduinoJson.h:8,
from .piolibdeps/nofuss/src/NoFUSSClient.h:26,
from .piolibdeps/nofuss/src/NoFUSSClient.cpp:21:
.piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../Serialization/../StringTraits/ArduinoStream.hpp:19:5: error: 'Stream' does not name a type
Stream& _stream;
^
.piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../Serialization/../StringTraits/ArduinoStream.hpp:22:20: error: expected ')' before '&' token
Iterator(Stream& stream) : _stream(stream) {}
^
.piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../Serialization/../StringTraits/ArduinoStream.hpp: In member function 'char ArduinoJson::Internals::StdStreamFuncs::Iterator::next()':
.piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../Serialization/../StringTraits/ArduinoStream.hpp:25:15: error: '_stream' was not declared in this scope
int n = _stream.read();
^
.piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../Serialization/../StringTraits/ArduinoStream.hpp: At global scope:
.piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../Serialization/../StringTraits/ArduinoStream.hpp:35:24: error: 'Stream' was not declared in this scope
Stream, typename TypeTraits::RemoveReference<
^
.piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../Serialization/../StringTraits/ArduinoStream.hpp:36:50: error: template argument 1 is invalid
TStream>::type>::value>::type>
^
.piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../Serialization/../StringTraits/ArduinoStream.hpp:36:58: error: template argument 1 is invalid
TStream>::type>::value>::type>
^
.piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../Serialization/../StringTraits/ArduinoStream.hpp:36:65: error: template argument 2 is invalid
TStream>::type>::value>::type>
^
.piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../Serialization/../StringTraits/ArduinoStream.hpp:37:5: error: expected '::' before ':' token
: StdStreamFuncs {};
^
.piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../Serialization/../StringTraits/ArduinoStream.hpp:37:5: error: expected identifier before ':' token
.piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../Serialization/../StringTraits/ArduinoStream.hpp:37:5: error: qualified name does not name a class before ':' token
.piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../Serialization/../StringTraits/ArduinoStream.hpp:37:5: error: expected '{' before ':' token
.piolibdeps/ArduinoJson_ID64/include/ArduinoJson/Deserialization/../Serialization/../StringTraits/ArduinoStream.hpp:37:5: error: expected unqualified-id before ':' token
So far I have been able to fix it including Stream.h just before the ArduinoJson.h header in my project. I have tested it with latest PlatformIO release under Linux, but one of my users has had the same issue under Windows 10 as well (https://bitbucket.org/xoseperez/espurna/issues/26/compile-error-with-nofuss-module-present). The issue is not present with previous ArduinoJson release.