Wandbox
SettingsLog
SettingsLog
Language
GitHubLogin
Ran/Viewed Log

Author

anonymous

about 2 years ago

Language

C++

Compiler

gcc 4.9.4

Options
Warnings
Boost 1.75.0
C++14(GNU)
no pedantic

Author

anonymous

about 2 years ago

ArduinoJson.h

$ g++ prog.cc -Wall -Wextra -I/opt/wandbox/boost-1.75.0-gcc-4.9.4/include -std=gnu++14
In file included from prog.cc:8:0:
ArduinoJson.h:10:4: error: #error ArduinoJson requires C++11 or newer. Configure your compiler for C++11 or downgrade ArduinoJson to 6.20.
 #  error ArduinoJson requires C++11 or newer. Configure your compiler for C++11 or downgrade ArduinoJson to 6.20.
    ^
In file included from prog.cc:8:0:
ArduinoJson.h:345:2: error: expected unqualified-id before '&&' token
 T&& declval();
  ^
In file included from prog.cc:8:0:
ArduinoJson.h:697:53: error: 'declval' was not declared in this scope
                 typename enable_if<is_same<decltype(declval<const T>().c_str()),
                                                     ^
ArduinoJson.h:697:79: error: a function call cannot appear in a constant-expression
                 typename enable_if<is_same<decltype(declval<const T>().c_str()),
                                                                               ^
ArduinoJson.h:698:55: error: template argument 1 is invalid
                                            const char*>::value>::type>
                                                       ^
ArduinoJson.h:698:63: error: template argument 1 is invalid
                                            const char*>::value>::type>
                                                               ^
ArduinoJson.h:698:70: error: template argument 2 is invalid
                                            const char*>::value>::type>
                                                                      ^
ArduinoJson.h:699:5: error: expected '::' before ':' token
     : true_type {};
     ^
ArduinoJson.h:699:5: error: expected identifier before ':' token
ArduinoJson.h:699:5: error: qualified name does not name a class before ':' token
ArduinoJson.h:699:5: error: expected '{' before ':' token
ArduinoJson.h:699:5: error: expected unqualified-id before ':' token
ArduinoJson.h:704:53: error: 'declval' was not declared in this scope
                 typename enable_if<is_same<decltype(declval<const T>().data()),
                                                     ^
ArduinoJson.h:704:78: error: a function call cannot appear in a constant-expression
                 typename enable_if<is_same<decltype(declval<const T>().data()),
                                                                              ^
ArduinoJson.h:705:55: error: template argument 1 is invalid
                                            const char*>::value>::type>
                                                       ^
ArduinoJson.h:705:63: error: template argument 1 is invalid
                                            const char*>::value>::type>
                                                               ^
ArduinoJson.h:705:70: error: template argument 2 is invalid
                                            const char*>::value>::type>
                                                                      ^
ArduinoJson.h:706:5: error: expected '::' before ':' token
     : true_type {};
     ^
ArduinoJson.h:706:5: error: expected identifier before ':' token
ArduinoJson.h:706:5: error: qualified name does not name a class before ':' token
ArduinoJson.h:706:5: error: expected '{' before ':' token
ArduinoJson.h:706:5: error: expected unqualified-id before ':' token
ArduinoJson.h:712:29: error: 'declval' was not declared in this scope
            is_same<decltype(declval<const T>().length()), size_t>::value>::type>
                             ^
ArduinoJson.h:712:56: error: a function call cannot appear in a constant-expression
            is_same<decltype(declval<const T>().length()), size_t>::value>::type>
                                                        ^
ArduinoJson.h:712:65: error: template argument 1 is invalid
            is_same<decltype(declval<const T>().length()), size_t>::value>::type>
                                                                 ^
ArduinoJson.h:712:73: error: template argument 1 is invalid
            is_same<decltype(declval<const T>().length()), size_t>::value>::type>
                                                                         ^
ArduinoJson.h:712:80: error: template argument 2 is invalid
            is_same<decltype(declval<const T>().length()), size_t>::value>::type>
                                                                                ^
ArduinoJson.h:713:5: error: expected '::' before ':' token
     : true_type {};
     ^
ArduinoJson.h:713:5: error: expected identifier before ':' token
ArduinoJson.h:713:5: error: qualified name does not name a class before ':' token
ArduinoJson.h:713:5: error: expected '{' before ':' token
ArduinoJson.h:713:5: error: expected unqualified-id before ':' token
ArduinoJson.h:719:29: error: 'declval' was not declared in this scope
            is_same<decltype(declval<const T>().size()), size_t>::value>::type>
                             ^
ArduinoJson.h:719:54: error: a function call cannot appear in a constant-expression
            is_same<decltype(declval<const T>().size()), size_t>::value>::type>
                                                      ^
ArduinoJson.h:719:63: error: template argument 1 is invalid
            is_same<decltype(declval<const T>().size()), size_t>::value>::type>
                                                               ^
ArduinoJson.h:719:71: error: template argument 1 is invalid
            is_same<decltype(declval<const T>().size()), size_t>::value>::type>
                                                                       ^
ArduinoJson.h:719:78: error: template argument 2 is invalid
            is_same<decltype(declval<const T>().size()), size_t>::value>::type>
                                                                              ^
ArduinoJson.h:720:5: error: expected '::' before ':' token
     : true_type {};
     ^
ArduinoJson.h:720:5: error: expected identifier before ':' token
ArduinoJson.h:720:5: error: qualified name does not name a class before ':' token
ArduinoJson.h:720:5: error: expected '{' before ':' token
ArduinoJson.h:720:5: error: expected unqualified-id before ':' token
In file included from prog.cc:8:0:
ArduinoJson.h: In function 'TFloat ArduinoJson::V6212HB::detail::make_float(TFloat, TExponent)':
ArduinoJson.h:1746:9: error: expected nested-name-specifier before 'traits'
   using traits = FloatTraits<TFloat>;
         ^
ArduinoJson.h:1747:8: error: 'powersOfTen' does not name a type
   auto powersOfTen = e > 0 ? traits::positiveBinaryPowersOfTen()
        ^
ArduinoJson.h:1753:12: error: 'powersOfTen' was not declared in this scope
       m *= powersOfTen[index];
            ^
ArduinoJson.h: At global scope:
ArduinoJson.h:2648:64: error: '>>' should be '> >' within a nested template argument list
                                   MemberProxy<TDerived, TString>>::type
                                                                ^
ArduinoJson.h:2652:63: error: '>>' should be '> >' within a nested template argument list
                                   MemberProxy<TDerived, TChar*>>::type
                                                               ^
ArduinoJson.h:2686:66: error: '>>' should be '> >' within a nested template argument list
 class ElementProxy : public VariantRefBase<ElementProxy<TUpstream>>,
                                                                  ^
ArduinoJson.h:2687:68: error: '>>' should be '> >' within a nested template argument list
                      public VariantOperators<ElementProxy<TUpstream>> {
                                                                    ^
ArduinoJson.h: In static member function 'static bool ArduinoJson::V6212HB::Converter<ArduinoJson::V6212HB::JsonVariant>::checkJson(ArduinoJson::V6212HB::JsonVariant)':
ArduinoJson.h:2755:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:2756:14: error: 'data' was not declared in this scope
     return !!data;
              ^
ArduinoJson.h: In static member function 'static bool ArduinoJson::V6212HB::Converter<ArduinoJson::V6212HB::JsonVariantConst>::checkJson(ArduinoJson::V6212HB::JsonVariantConst)':
ArduinoJson.h:2771:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:2772:14: error: 'data' was not declared in this scope
     return !!data;
              ^
ArduinoJson.h: In static member function 'static ArduinoJson::V6212HB::JsonArrayConst ArduinoJson::V6212HB::Converter<ArduinoJson::V6212HB::JsonArrayConst>::fromJson(ArduinoJson::V6212HB::JsonVariantConst)':
ArduinoJson.h:2962:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:2963:12: error: 'data' was not declared in this scope
     return data ? data->asArray() : 0;
            ^
ArduinoJson.h: In static member function 'static bool ArduinoJson::V6212HB::Converter<ArduinoJson::V6212HB::JsonArrayConst>::checkJson(ArduinoJson::V6212HB::JsonVariantConst)':
ArduinoJson.h:2966:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:2967:12: error: 'data' was not declared in this scope
     return data && data->isArray();
            ^
ArduinoJson.h: In static member function 'static ArduinoJson::V6212HB::JsonArray ArduinoJson::V6212HB::Converter<ArduinoJson::V6212HB::JsonArray>::fromJson(ArduinoJson::V6212HB::JsonVariant)':
ArduinoJson.h:3073:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:3074:10: error: 'pool' does not name a type
     auto pool = getPool(src);
          ^
ArduinoJson.h:3075:22: error: 'pool' was not declared in this scope
     return JsonArray(pool, data != 0 ? data->asArray() : 0);
                      ^
ArduinoJson.h:3075:28: error: 'data' was not declared in this scope
     return JsonArray(pool, data != 0 ? data->asArray() : 0);
                            ^
ArduinoJson.h: In static member function 'static bool ArduinoJson::V6212HB::Converter<ArduinoJson::V6212HB::JsonArray>::checkJson(ArduinoJson::V6212HB::JsonVariant)':
ArduinoJson.h:3083:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:3084:12: error: 'data' was not declared in this scope
     return data && data->isArray();
            ^
ArduinoJson.h: In static member function 'static ArduinoJson::V6212HB::JsonObjectConst ArduinoJson::V6212HB::Converter<ArduinoJson::V6212HB::JsonObjectConst>::fromJson(ArduinoJson::V6212HB::JsonVariantConst)':
ArduinoJson.h:3294:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:3295:12: error: 'data' was not declared in this scope
     return data != 0 ? data->asObject() : 0;
            ^
ArduinoJson.h: In static member function 'static bool ArduinoJson::V6212HB::Converter<ArduinoJson::V6212HB::JsonObjectConst>::checkJson(ArduinoJson::V6212HB::JsonVariantConst)':
ArduinoJson.h:3298:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:3299:12: error: 'data' was not declared in this scope
     return data && data->isObject();
            ^
ArduinoJson.h: At global scope:
ArduinoJson.h:3306:62: error: '>>' should be '> >' within a nested template argument list
     : public VariantRefBase<MemberProxy<TUpstream, TStringRef>>,
                                                              ^
ArduinoJson.h:3307:64: error: '>>' should be '> >' within a nested template argument list
       public VariantOperators<MemberProxy<TUpstream, TStringRef>> {
                                                                ^
ArduinoJson.h:3404:73: error: '>>' should be '> >' within a nested template argument list
                                  detail::MemberProxy<JsonObject, TString>>::type
                                                                         ^
ArduinoJson.h:3411:72: error: '>>' should be '> >' within a nested template argument list
                                  detail::MemberProxy<JsonObject, TChar*>>::type
                                                                        ^
ArduinoJson.h: In static member function 'static ArduinoJson::V6212HB::JsonObject ArduinoJson::V6212HB::Converter<ArduinoJson::V6212HB::JsonObject>::fromJson(ArduinoJson::V6212HB::JsonVariant)':
ArduinoJson.h:3483:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:3484:10: error: 'pool' does not name a type
     auto pool = getPool(src);
          ^
ArduinoJson.h:3485:23: error: 'pool' was not declared in this scope
     return JsonObject(pool, data != 0 ? data->asObject() : 0);
                       ^
ArduinoJson.h:3485:29: error: 'data' was not declared in this scope
     return JsonObject(pool, data != 0 ? data->asObject() : 0);
                             ^
ArduinoJson.h: In static member function 'static bool ArduinoJson::V6212HB::Converter<ArduinoJson::V6212HB::JsonObject>::checkJson(ArduinoJson::V6212HB::JsonVariant)':
ArduinoJson.h:3493:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:3494:12: error: 'data' was not declared in this scope
     return data && data->isObject();
            ^
ArduinoJson.h: At global scope:
ArduinoJson.h:3587:49: error: '>>' should be '> >' within a nested template argument list
       detail::MemberProxy<JsonDocument&, TString>>::type
                                                 ^
ArduinoJson.h:3594:48: error: '>>' should be '> >' within a nested template argument list
       detail::MemberProxy<JsonDocument&, TChar*>>::type
                                                ^
ArduinoJson.h:3710:38: error: expected ',' or '...' before '&&' token
   BasicJsonDocument(BasicJsonDocument&& src) : AllocatorOwner<TAllocator>(src) {
                                      ^
ArduinoJson.h:3710:44: error: invalid constructor; you probably meant 'ArduinoJson::V6212HB::BasicJsonDocument<TAllocator> (const ArduinoJson::V6212HB::BasicJsonDocument<TAllocator>&)'
   BasicJsonDocument(BasicJsonDocument&& src) : AllocatorOwner<TAllocator>(src) {
                                            ^
ArduinoJson.h:3739:49: error: expected ',' or '...' before '&&' token
   BasicJsonDocument& operator=(BasicJsonDocument&& src) {
                                                 ^
ArduinoJson.h: In member function 'ArduinoJson::V6212HB::BasicJsonDocument<TAllocator>& ArduinoJson::V6212HB::BasicJsonDocument<TAllocator>::operator=(ArduinoJson::V6212HB::BasicJsonDocument<TAllocator>)':
ArduinoJson.h:3740:20: error: 'src' was not declared in this scope
     moveAssignFrom(src);
                    ^
ArduinoJson.h: At global scope:
ArduinoJson.h:4147:57: error: '>>' should be '> >' within a nested template argument list
                           MemberProxy<TDerived, TString*>>::type
                                                         ^
ArduinoJson.h:4154:56: error: '>>' should be '> >' within a nested template argument list
                           MemberProxy<TDerived, TString>>::type
                                                        ^
ArduinoJson.h:4431:1: error: expected unqualified-id before 'using'
 using void_t = void;
 ^
ArduinoJson.h:4436:8: error: 'void_t' was not declared in this scope
     T, void_t<decltype(T().push_back('a')), decltype(T().append(""))>>
        ^
ArduinoJson.h:4436:28: error: '.' cannot appear in a constant-expression
     T, void_t<decltype(T().push_back('a')), decltype(T().append(""))>>
                            ^
ArduinoJson.h:4436:41: error: a function call cannot appear in a constant-expression
     T, void_t<decltype(T().push_back('a')), decltype(T().append(""))>>
                                         ^
ArduinoJson.h:4436:42: error: a function call cannot appear in a constant-expression
     T, void_t<decltype(T().push_back('a')), decltype(T().append(""))>>
                                          ^
ArduinoJson.h:4436:58: error: '.' cannot appear in a constant-expression
     T, void_t<decltype(T().push_back('a')), decltype(T().append(""))>>
                                                          ^
ArduinoJson.h:4436:67: error: a function call cannot appear in a constant-expression
     T, void_t<decltype(T().push_back('a')), decltype(T().append(""))>>
                                                                   ^
ArduinoJson.h:4436:68: error: a function call cannot appear in a constant-expression
     T, void_t<decltype(T().push_back('a')), decltype(T().append(""))>>
                                                                    ^
ArduinoJson.h:4437:7: error: wrong number of template arguments (3, should be 2)
     : true_type {};
       ^
ArduinoJson.h:4433:8: error: provided for 'template<class T, class> struct ArduinoJson::V6212HB::detail::is_std_string'
 struct is_std_string : false_type {};
        ^
ArduinoJson.h: In static member function 'static void ArduinoJson::V6212HB::Converter<T, typename ArduinoJson::V6212HB::detail::enable_if<((ArduinoJson::V6212HB::detail::is_integral<T>::value && (! ArduinoJson::V6212HB::detail::is_same<bool, T>::value)) && (! ArduinoJson::V6212HB::detail::is_same<char, T>::value))>::type>::toJson(T, ArduinoJson::V6212HB::JsonVariant)':
ArduinoJson.h:4695:10: error: 'data' does not name a type
     auto data = getData(dst);
          ^
In file included from prog.cc:8:0:
ArduinoJson.h:4696:5: error: there are no arguments to 'static_assert' that depend on a template parameter, so a declaration of 'static_assert' must be available [-fpermissive]
     ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED(T);
     ^
ArduinoJson.h:4696:5: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
In file included from prog.cc:8:0:
ArduinoJson.h:4697:9: error: 'data' was not declared in this scope
     if (data)
         ^
In file included from prog.cc:8:0:
ArduinoJson.h: In static member function 'static T ArduinoJson::V6212HB::Converter<T, typename ArduinoJson::V6212HB::detail::enable_if<((ArduinoJson::V6212HB::detail::is_integral<T>::value && (! ArduinoJson::V6212HB::detail::is_same<bool, T>::value)) && (! ArduinoJson::V6212HB::detail::is_same<char, T>::value))>::type>::fromJson(ArduinoJson::V6212HB::JsonVariantConst)':
ArduinoJson.h:4701:5: error: there are no arguments to 'static_assert' that depend on a template parameter, so a declaration of 'static_assert' must be available [-fpermissive]
     ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED(T);
     ^
In file included from prog.cc:8:0:
ArduinoJson.h:4702:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:4703:12: error: 'data' was not declared in this scope
     return data ? data->template asIntegral<T>() : T();
            ^
ArduinoJson.h: In static member function 'static bool ArduinoJson::V6212HB::Converter<T, typename ArduinoJson::V6212HB::detail::enable_if<((ArduinoJson::V6212HB::detail::is_integral<T>::value && (! ArduinoJson::V6212HB::detail::is_same<bool, T>::value)) && (! ArduinoJson::V6212HB::detail::is_same<char, T>::value))>::type>::checkJson(ArduinoJson::V6212HB::JsonVariantConst)':
ArduinoJson.h:4706:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:4707:12: error: 'data' was not declared in this scope
     return data && data->template isInteger<T>();
            ^
ArduinoJson.h: In static member function 'static T ArduinoJson::V6212HB::Converter<T, typename ArduinoJson::V6212HB::detail::enable_if<ArduinoJson::V6212HB::detail::is_enum<T>::value>::type>::fromJson(ArduinoJson::V6212HB::JsonVariantConst)':
ArduinoJson.h:4717:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:4718:12: error: 'data' was not declared in this scope
     return data ? static_cast<T>(data->template asIntegral<int>()) : T();
            ^
ArduinoJson.h: In static member function 'static bool ArduinoJson::V6212HB::Converter<T, typename ArduinoJson::V6212HB::detail::enable_if<ArduinoJson::V6212HB::detail::is_enum<T>::value>::type>::checkJson(ArduinoJson::V6212HB::JsonVariantConst)':
ArduinoJson.h:4721:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:4722:12: error: 'data' was not declared in this scope
     return data && data->template isInteger<int>();
            ^
ArduinoJson.h: In static member function 'static void ArduinoJson::V6212HB::Converter<bool>::toJson(bool, ArduinoJson::V6212HB::JsonVariant)':
ArduinoJson.h:4728:10: error: 'data' does not name a type
     auto data = getData(dst);
          ^
ArduinoJson.h:4729:9: error: 'data' was not declared in this scope
     if (data)
         ^
ArduinoJson.h: In static member function 'static bool ArduinoJson::V6212HB::Converter<bool>::fromJson(ArduinoJson::V6212HB::JsonVariantConst)':
ArduinoJson.h:4733:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:4734:12: error: 'data' was not declared in this scope
     return data ? data->asBoolean() : false;
            ^
ArduinoJson.h: In static member function 'static bool ArduinoJson::V6212HB::Converter<bool>::checkJson(ArduinoJson::V6212HB::JsonVariantConst)':
ArduinoJson.h:4737:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:4738:12: error: 'data' was not declared in this scope
     return data && data->isBoolean();
            ^
ArduinoJson.h: In static member function 'static void ArduinoJson::V6212HB::Converter<T, typename ArduinoJson::V6212HB::detail::enable_if<ArduinoJson::V6212HB::detail::is_floating_point<T>::value>::type>::toJson(T, ArduinoJson::V6212HB::JsonVariant)':
ArduinoJson.h:4746:10: error: 'data' does not name a type
     auto data = getData(dst);
          ^
ArduinoJson.h:4747:9: error: 'data' was not declared in this scope
     if (data)
         ^
ArduinoJson.h: In static member function 'static T ArduinoJson::V6212HB::Converter<T, typename ArduinoJson::V6212HB::detail::enable_if<ArduinoJson::V6212HB::detail::is_floating_point<T>::value>::type>::fromJson(ArduinoJson::V6212HB::JsonVariantConst)':
ArduinoJson.h:4751:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:4752:12: error: 'data' was not declared in this scope
     return data ? data->template asFloat<T>() : 0;
            ^
ArduinoJson.h: In static member function 'static bool ArduinoJson::V6212HB::Converter<T, typename ArduinoJson::V6212HB::detail::enable_if<ArduinoJson::V6212HB::detail::is_floating_point<T>::value>::type>::checkJson(ArduinoJson::V6212HB::JsonVariantConst)':
ArduinoJson.h:4755:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:4756:12: error: 'data' was not declared in this scope
     return data && data->isFloat();
            ^
ArduinoJson.h: In static member function 'static const char* ArduinoJson::V6212HB::Converter<const char*>::fromJson(ArduinoJson::V6212HB::JsonVariantConst)':
ArduinoJson.h:4765:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:4766:12: error: 'data' was not declared in this scope
     return data ? data->asString().c_str() : 0;
            ^
ArduinoJson.h: In static member function 'static bool ArduinoJson::V6212HB::Converter<const char*>::checkJson(ArduinoJson::V6212HB::JsonVariantConst)':
ArduinoJson.h:4769:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:4770:12: error: 'data' was not declared in this scope
     return data && data->isString();
            ^
ArduinoJson.h: In static member function 'static ArduinoJson::V6212HB::JsonString ArduinoJson::V6212HB::Converter<ArduinoJson::V6212HB::JsonString>::fromJson(ArduinoJson::V6212HB::JsonVariantConst)':
ArduinoJson.h:4779:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:4780:12: error: 'data' was not declared in this scope
     return data ? data->asString() : 0;
            ^
ArduinoJson.h: In static member function 'static bool ArduinoJson::V6212HB::Converter<ArduinoJson::V6212HB::JsonString>::checkJson(ArduinoJson::V6212HB::JsonVariantConst)':
ArduinoJson.h:4783:10: error: 'data' does not name a type
     auto data = getData(src);
          ^
ArduinoJson.h:4784:12: error: 'data' was not declared in this scope
     return data && data->isString();
            ^
ArduinoJson.h: In function 'typename ArduinoJson::V6212HB::detail::enable_if<ArduinoJson::V6212HB::detail::IsString<TString>::value, bool>::type ArduinoJson::V6212HB::convertToJson(const T&, ArduinoJson::V6212HB::JsonVariant)':
ArduinoJson.h:4791:8: error: 'data' does not name a type
   auto data = VariantAttorney::getData(dst);
        ^
ArduinoJson.h:4792:8: error: 'pool' does not name a type
   auto pool = VariantAttorney::getPool(dst);
        ^
ArduinoJson.h:4793:27: error: 'data' was not declared in this scope
   return variantSetString(data, adaptString(src), pool);
                           ^
ArduinoJson.h:4793:51: error: 'pool' was not declared in this scope
   return variantSetString(data, adaptString(src), pool);
                                                   ^
ArduinoJson.h: At global scope:
ArduinoJson.h:4796:45: error: '>>' should be '> >' within a nested template argument list
 struct Converter<SerializedValue<const char*>>
                                             ^
ArduinoJson.h: In static member function 'static void ArduinoJson::V6212HB::Converter<ArduinoJson::V6212HB::SerializedValue<const char*> >::toJson(ArduinoJson::V6212HB::SerializedValue<const char*>, ArduinoJson::V6212HB::JsonVariant)':
ArduinoJson.h:4799:10: error: 'data' does not name a type
     auto data = getData(dst);
          ^
ArduinoJson.h:4800:9: error: 'data' was not declared in this scope
     if (data)
         ^
ArduinoJson.h: In static member function 'static void ArduinoJson::V6212HB::Converter<ArduinoJson::V6212HB::SerializedValue<T>, typename ArduinoJson::V6212HB::detail::enable_if<(! ArduinoJson::V6212HB::detail::is_same<const char*, T>::value)>::type>::toJson(ArduinoJson::V6212HB::SerializedValue<T>, ArduinoJson::V6212HB::JsonVariant)':
ArduinoJson.h:4810:10: error: 'data' does not name a type
     auto data = getData(dst);
          ^
ArduinoJson.h:4811:10: error: 'pool' does not name a type
     auto pool = getPool(dst);
          ^
ArduinoJson.h:4812:9: error: 'data' was not declared in this scope
     if (data)
         ^
ArduinoJson.h:4813:32: error: 'pool' was not declared in this scope
       data->storeOwnedRaw(src, pool);
                                ^
ArduinoJson.h: At global scope:
ArduinoJson.h:4817:27: error: 'nullptr' was not declared in this scope
 struct Converter<decltype(nullptr)> : private detail::VariantAttorney {
                           ^
ArduinoJson.h:4817:34: error: a function call cannot appear in a constant-expression
 struct Converter<decltype(nullptr)> : private detail::VariantAttorney {
                                  ^
ArduinoJson.h:4817:35: error: template argument 1 is invalid
 struct Converter<decltype(nullptr)> : private detail::VariantAttorney {
                                   ^
ArduinoJson.h:4978:26: error: 'nullptr' was not declared in this scope
 struct Comparer<decltype(nullptr), void> : NullComparer {
                          ^
ArduinoJson.h:4978:33: error: a function call cannot appear in a constant-expression
 struct Comparer<decltype(nullptr), void> : NullComparer {
                                 ^
ArduinoJson.h:4978:40: error: template argument 1 is invalid
 struct Comparer<decltype(nullptr), void> : NullComparer {
                                        ^
ArduinoJson.h:5486:2: error: expected unqualified-id before '&&' token
 T&& forward(typename remove_reference<T>::type& t) noexcept {
  ^
ArduinoJson.h:5668:66: error: expected ',' or '...' before '&&' token
 Reader<typename remove_reference<TInput>::type> makeReader(TInput&& input) {
                                                                  ^
ArduinoJson.h: In function 'ArduinoJson::V6212HB::detail::Reader<typename ArduinoJson::V6212HB::detail::remove_reference<T>::type> ArduinoJson::V6212HB::detail::makeReader(TInput)':
ArduinoJson.h:5670:7: error: 'forward' is not a member of 'ArduinoJson::V6212HB::detail'
       detail::forward<TInput>(input)};
       ^
ArduinoJson.h:5670:31: error: 'input' was not declared in this scope
       detail::forward<TInput>(input)};
                               ^
ArduinoJson.h:5669:57: error: expected primary-expression before '{' token
   return Reader<typename remove_reference<TInput>::type>{
                                                         ^
ArduinoJson.h:5669:57: error: expected ';' before '{' token
ArduinoJson.h:5670:7: error: 'forward' is not a member of 'ArduinoJson::V6212HB::detail'
       detail::forward<TInput>(input)};
       ^
ArduinoJson.h:5670:29: error: expected primary-expression before '>' token
       detail::forward<TInput>(input)};
                             ^
ArduinoJson.h: At global scope:
ArduinoJson.h:5763:9: error: expected nested-name-specifier before 'type'
   using type = void;
         ^
ArduinoJson.h:5767:9: error: expected nested-name-specifier before 'type'
   using type = T;
         ^
ArduinoJson.h:5781:60: error: expected ',' or '...' before '&&' token
 DeserializationError deserialize(JsonDocument& doc, TStream&& input,
                                                            ^
ArduinoJson.h:5782:46: error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11
                                  Args... args) {
                                              ^
ArduinoJson.h: In function 'ArduinoJson::V6212HB::DeserializationError ArduinoJson::V6212HB::detail::deserialize(ArduinoJson::V6212HB::JsonDocument&, TStream)':
ArduinoJson.h:5783:8: error: 'reader' does not name a type
   auto reader = makeReader(detail::forward<TStream>(input));
        ^
ArduinoJson.h:5784:8: error: 'data' does not name a type
   auto data = VariantAttorney::getData(doc);
        ^
ArduinoJson.h:5785:8: error: 'pool' does not name a type
   auto pool = VariantAttorney::getPool(doc);
        ^
ArduinoJson.h:5786:8: error: 'options' does not name a type
   auto options = makeDeserializationOptions(args...);
        ^
ArduinoJson.h:5788:42: error: 'pool' was not declared in this scope
   return makeDeserializer<TDeserializer>(pool, reader,
                                          ^
ArduinoJson.h:5788:48: error: 'reader' was not declared in this scope
   return makeDeserializer<TDeserializer>(pool, reader,
                                                ^
ArduinoJson.h:5789:60: error: 'input' was not declared in this scope
                                          makeStringStorage(input, pool))
                                                            ^
ArduinoJson.h:5790:15: error: 'data' was not declared in this scope
       .parse(*data, options.filter, options.nestingLimit);
               ^
ArduinoJson.h:5790:21: error: 'options' was not declared in this scope
       .parse(*data, options.filter, options.nestingLimit);
                     ^
ArduinoJson.h: At global scope:
ArduinoJson.h:5796:62: error: default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11
                                  Size inputSize, Args... args) {
                                                              ^
ArduinoJson.h: In function 'ArduinoJson::V6212HB::DeserializationError ArduinoJson::V6212HB::detail::deserialize(ArduinoJson::V6212HB::JsonDocument&, TChar*, Size, Args ...)':
ArduinoJson.h:5797:8: error: 'reader' does not name a type
   auto reader = makeReader(input, size_t(inputSize));
        ^
ArduinoJson.h:5798:8: error: 'data' does not name a type
   auto data = VariantAttorney::getData(doc);
        ^
ArduinoJson.h:5799:8: error: 'pool' does not name a type
   auto pool = VariantAttorney::getPool(doc);
        ^
ArduinoJson.h:5800:8: error: 'options' does not name a type
   auto options = makeDeserializationOptions(args...);
        ^
ArduinoJson.h:5802:42: error: 'pool' was not declared in this scope
   return makeDeserializer<TDeserializer>(pool, reader,
                                          ^
ArduinoJson.h:5802:48: error: 'reader' was not declared in this scope
   return makeDeserializer<TDeserializer>(pool, reader,
                                                ^
ArduinoJson.h:5804:15: error: 'data' was not declared in this scope
       .parse(*data, options.filter, options.nestingLimit);
               ^
ArduinoJson.h:5804:21: error: 'options' was not declared in this scope
       .parse(*data, options.filter, options.nestingLimit);
                     ^
ArduinoJson.h: At global scope:
ArduinoJson.h:6407:61: error: expected ',' or '...' before '&&' token
 DeserializationError deserializeJson(JsonDocument& doc, Args&&... args) {
                                                             ^
ArduinoJson.h:6407:71: error: parameter packs not expanded with '...':
 DeserializationError deserializeJson(JsonDocument& doc, Args&&... args) {
                                                                       ^
ArduinoJson.h:6407:71: note:         'Args'
ArduinoJson.h: In function 'ArduinoJson::V6212HB::DeserializationError ArduinoJson::V6212HB::deserializeJson(ArduinoJson::V6212HB::JsonDocument&, <type error>)':
ArduinoJson.h:6409:45: error: 'forward' is not a member of 'ArduinoJson::V6212HB::detail'
   return deserialize<JsonDeserializer>(doc, detail::forward<Args>(args)...);
                                             ^
ArduinoJson.h:6409:65: error: expected primary-expression before '>' token
   return deserialize<JsonDeserializer>(doc, detail::forward<Args>(args)...);
                                                                 ^
ArduinoJson.h:6409:67: error: 'args' was not declared in this scope
   return deserialize<JsonDeserializer>(doc, detail::forward<Args>(args)...);
                                                                   ^
ArduinoJson.h: At global scope:
ArduinoJson.h:6413:42: error: expected ',' or '...' before '&&' token
                                      Args&&... args) {
                                          ^
ArduinoJson.h:6413:52: error: parameter packs not expanded with '...':
                                      Args&&... args) {
                                                    ^
ArduinoJson.h:6413:52: note:         'Args'
ArduinoJson.h: In function 'ArduinoJson::V6212HB::DeserializationError ArduinoJson::V6212HB::deserializeJson(ArduinoJson::V6212HB::JsonDocument&, TChar*, <type error>)':
ArduinoJson.h:6416:40: error: 'forward' is not a member of 'ArduinoJson::V6212HB::detail'
                                        detail::forward<Args>(args)...);
                                        ^
ArduinoJson.h:6416:60: error: expected primary-expression before '>' token
                                        detail::forward<Args>(args)...);
                                                            ^
ArduinoJson.h:6416:62: error: 'args' was not declared in this scope
                                        detail::forward<Args>(args)...);
                                                              ^
ArduinoJson.h: At global scope:
ArduinoJson.h:6947:64: error: expected ',' or '...' before '&&' token
 DeserializationError deserializeMsgPack(JsonDocument& doc, Args&&... args) {
                                                                ^
ArduinoJson.h:6947:74: error: parameter packs not expanded with '...':
 DeserializationError deserializeMsgPack(JsonDocument& doc, Args&&... args) {
                                                                          ^
ArduinoJson.h:6947:74: note:         'Args'
ArduinoJson.h: In function 'ArduinoJson::V6212HB::DeserializationError ArduinoJson::V6212HB::deserializeMsgPack(ArduinoJson::V6212HB::JsonDocument&, <type error>)':
ArduinoJson.h:6949:48: error: 'forward' is not a member of 'ArduinoJson::V6212HB::detail'
   return deserialize<MsgPackDeserializer>(doc, detail::forward<Args>(args)...);
                                                ^
ArduinoJson.h:6949:68: error: expected primary-expression before '>' token
   return deserialize<MsgPackDeserializer>(doc, detail::forward<Args>(args)...);
                                                                    ^
ArduinoJson.h:6949:70: error: 'args' was not declared in this scope
   return deserialize<MsgPackDeserializer>(doc, detail::forward<Args>(args)...);
                                                                      ^
ArduinoJson.h: At global scope:
ArduinoJson.h:6953:45: error: expected ',' or '...' before '&&' token
                                         Args&&... args) {
                                             ^
ArduinoJson.h:6953:55: error: parameter packs not expanded with '...':
                                         Args&&... args) {
                                                       ^
ArduinoJson.h:6953:55: note:         'Args'
ArduinoJson.h: In function 'ArduinoJson::V6212HB::DeserializationError ArduinoJson::V6212HB::deserializeMsgPack(ArduinoJson::V6212HB::JsonDocument&, TChar*, <type error>)':
ArduinoJson.h:6956:43: error: 'forward' is not a member of 'ArduinoJson::V6212HB::detail'
                                           detail::forward<Args>(args)...);
                                           ^
ArduinoJson.h:6956:63: error: expected primary-expression before '>' token
                                           detail::forward<Args>(args)...);
                                                               ^
ArduinoJson.h:6956:65: error: 'args' was not declared in this scope
                                           detail::forward<Args>(args)...);
                                                                 ^
prog.cc: In function 'int main()':
prog.cc:35:57: error: no matching function for call to 'deserializeJson(ArduinoJson::V6212HB::StaticJsonDocument<300ul>&, char [63])'
   DeserializationError error = deserializeJson(doc, json);
                                                         ^
prog.cc:35:57: note: candidates are:
In file included from prog.cc:8:0:
ArduinoJson.h:6407:22: note: template<class ... Args> ArduinoJson::V6212HB::DeserializationError ArduinoJson::V6212HB::deserializeJson(ArduinoJson::V6212HB::JsonDocument&, <type error>)
 DeserializationError deserializeJson(JsonDocument& doc, Args&&... args) {
                      ^
ArduinoJson.h:6407:22: note:   template argument deduction/substitution failed:
ArduinoJson.h:6412:22: note: template<class TChar, class ... Args> ArduinoJson::V6212HB::DeserializationError ArduinoJson::V6212HB::deserializeJson(ArduinoJson::V6212HB::JsonDocument&, TChar*, <type error>)
 DeserializationError deserializeJson(JsonDocument& doc, TChar* input,
                      ^
ArduinoJson.h:6412:22: note:   template argument deduction/substitution failed:
prog.cc:35:57: note:   candidate expects 3 arguments, 2 provided
   DeserializationError error = deserializeJson(doc, json);
                                                         ^
In file included from prog.cc:8:0:
ArduinoJson.h: In instantiation of 'static T ArduinoJson::V6212HB::Converter<T, typename ArduinoJson::V6212HB::detail::enable_if<((ArduinoJson::V6212HB::detail::is_integral<T>::value && (! ArduinoJson::V6212HB::detail::is_same<bool, T>::value)) && (! ArduinoJson::V6212HB::detail::is_same<char, T>::value))>::type>::fromJson(ArduinoJson::V6212HB::JsonVariantConst) [with T = long int]':
ArduinoJson.h:2544:52:   required from 'typename ArduinoJson::V6212HB::detail::enable_if<(! ArduinoJson::V6212HB::detail::ConverterNeedsWriteableRef<T>::value), T>::type ArduinoJson::V6212HB::detail::VariantRefBase<TDerived>::as() const [with T = long int; TDerived = ArduinoJson::V6212HB::detail::MemberProxy<ArduinoJson::V6212HB::JsonDocument&, const char*>; typename ArduinoJson::V6212HB::detail::enable_if<(! ArduinoJson::V6212HB::detail::ConverterNeedsWriteableRef<T>::value), T>::type = long int]'
ArduinoJson.h:2553:14:   required from 'ArduinoJson::V6212HB::detail::VariantRefBase<TDerived>::operator T() const [with T = long int; TDerived = ArduinoJson::V6212HB::detail::MemberProxy<ArduinoJson::V6212HB::JsonDocument&, const char*>]'
prog.cc:48:25:   required from here
ArduinoJson.h:4701:5: error: 'static_assert' was not declared in this scope
     ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED(T);
     ^
In file included from prog.cc:8:0:
ArduinoJson.h: In instantiation of 'size_t ArduinoJson::V6212HB::detail::Writer<TDestination, Enable>::write(const uint8_t*, size_t) [with TDestination = std::basic_string<char>; Enable = void; size_t = long unsigned int; uint8_t = unsigned char]':
ArduinoJson.h:4248:12:   required from 'void ArduinoJson::V6212HB::detail::CountingDecorator<TWriter>::write(const uint8_t*, size_t) [with TWriter = ArduinoJson::V6212HB::detail::Writer<std::basic_string<char>, void>; uint8_t = unsigned char; size_t = long unsigned int]'
ArduinoJson.h:4359:5:   required from 'void ArduinoJson::V6212HB::detail::TextFormatter<TWriter>::writeRaw(const char*) [with TWriter = ArduinoJson::V6212HB::detail::Writer<std::basic_string<char>, void>]'
ArduinoJson.h:4632:5:   required from 'size_t ArduinoJson::V6212HB::detail::JsonSerializer<TWriter>::visitNull() [with TWriter = ArduinoJson::V6212HB::detail::Writer<std::basic_string<char>, void>; size_t = long unsigned int]'
ArduinoJson.h:2123:30:   required from 'typename TVisitor::result_type ArduinoJson::V6212HB::detail::variantAccept(const ArduinoJson::V6212HB::detail::VariantData*, TVisitor&) [with TVisitor = ArduinoJson::V6212HB::detail::JsonSerializer<ArduinoJson::V6212HB::detail::Writer<std::basic_string<char>, void> >; typename TVisitor::result_type = long unsigned int]'
ArduinoJson.h:4540:68:   required from 'size_t ArduinoJson::V6212HB::detail::doSerialize(ArduinoJson::V6212HB::JsonVariantConst, TWriter) [with TSerializer = ArduinoJson::V6212HB::detail::JsonSerializer; TWriter = ArduinoJson::V6212HB::detail::Writer<std::basic_string<char>, void>; size_t = long unsigned int]'
ArduinoJson.h:4546:49:   required from 'size_t ArduinoJson::V6212HB::detail::serialize(ArduinoJson::V6212HB::JsonVariantConst, TDestination&) [with TSerializer = ArduinoJson::V6212HB::detail::JsonSerializer; TDestination = std::basic_string<char>; size_t = long unsigned int]'
ArduinoJson.h:4653:55:   required from 'size_t ArduinoJson::V6212HB::serializeJson(ArduinoJson::V6212HB::JsonVariantConst, TDestination&) [with TDestination = std::basic_string<char>; size_t = long unsigned int]'
ArduinoJson.h:4899:27:   required from here
ArduinoJson.h:4401:29: error: 'class std::basic_string<char>' has no member named 'write'
     return dest_->write(s, n);
                             ^
ArduinoJson.h: In instantiation of 'size_t ArduinoJson::V6212HB::detail::Writer<TDestination, Enable>::write(uint8_t) [with TDestination = std::basic_string<char>; Enable = void; size_t = long unsigned int; uint8_t = unsigned char]':
ArduinoJson.h:4245:12:   required from 'void ArduinoJson::V6212HB::detail::CountingDecorator<TWriter>::write(uint8_t) [with TWriter = ArduinoJson::V6212HB::detail::Writer<std::basic_string<char>, void>; uint8_t = unsigned char]'
ArduinoJson.h:4373:5:   required from 'void ArduinoJson::V6212HB::detail::TextFormatter<TWriter>::writeRaw(char) [with TWriter = ArduinoJson::V6212HB::detail::Writer<std::basic_string<char>, void>]'
ArduinoJson.h:4311:19:   required from 'void ArduinoJson::V6212HB::detail::TextFormatter<TWriter>::writeFloat(T) [with T = double; TWriter = ArduinoJson::V6212HB::detail::Writer<std::basic_string<char>, void>]'
ArduinoJson.h:4604:5:   required from 'size_t ArduinoJson::V6212HB::detail::JsonSerializer<TWriter>::visitFloat(ArduinoJson::V6212HB::JsonFloat) [with TWriter = ArduinoJson::V6212HB::detail::Writer<std::basic_string<char>, void>; size_t = long unsigned int; ArduinoJson::V6212HB::JsonFloat = double]'
ArduinoJson.h:1855:51:   required from 'typename TVisitor::result_type ArduinoJson::V6212HB::detail::VariantData::accept(TVisitor&) const [with TVisitor = ArduinoJson::V6212HB::detail::JsonSerializer<ArduinoJson::V6212HB::detail::Writer<std::basic_string<char>, void> >; typename TVisitor::result_type = long unsigned int]'
ArduinoJson.h:2121:31:   required from 'typename TVisitor::result_type ArduinoJson::V6212HB::detail::variantAccept(const ArduinoJson::V6212HB::detail::VariantData*, TVisitor&) [with TVisitor = ArduinoJson::V6212HB::detail::JsonSerializer<ArduinoJson::V6212HB::detail::Writer<std::basic_string<char>, void> >; typename TVisitor::result_type = long unsigned int]'
ArduinoJson.h:4540:68:   required from 'size_t ArduinoJson::V6212HB::detail::doSerialize(ArduinoJson::V6212HB::JsonVariantConst, TWriter) [with TSerializer = ArduinoJson::V6212HB::detail::JsonSerializer; TWriter = ArduinoJson::V6212HB::detail::Writer<std::basic_string<char>, void>; size_t = long unsigned int]'
ArduinoJson.h:4546:49:   required from 'size_t ArduinoJson::V6212HB::detail::serialize(ArduinoJson::V6212HB::JsonVariantConst, TDestination&) [with TSerializer = ArduinoJson::V6212HB::detail::JsonSerializer; TDestination = std::basic_string<char>; size_t = long unsigned int]'
ArduinoJson.h:4653:55:   required from 'size_t ArduinoJson::V6212HB::serializeJson(ArduinoJson::V6212HB::JsonVariantConst, TDestination&) [with TDestination = std::basic_string<char>; size_t = long unsigned int]'
ArduinoJson.h:4899:27:   required from here
ArduinoJson.h:4398:26: error: 'class std::basic_string<char>' has no member named 'write'
     return dest_->write(c);
                          ^
Exit Code:
1