OpenRoberta / openroberta-lab

The programming environment »Open Roberta Lab« by Fraunhofer IAIS enables children and adolescents to program robots. A variety of different programming blocks are provided to program motors and sensors of the robot. Open Roberta Lab uses an approach of graphical programming so that beginners can seamlessly start coding. As a cloud-based application, the platform can be used without prior installation of specific software but runs in any popular browser, independent of operating system and device.
Apache License 2.0
124 stars 121 forks source link

Calliope: comparison string lists compilation error #1022

Open aykborstelmann opened 3 years ago

aykborstelmann commented 3 years ago

image Example program as zip: StringListComparison.zip

This produces this code:

#define _GNU_SOURCE

#include "MicroBit.h"
#include "NEPODefs.h"
#include <list>
#include <array>
#include <stdlib.h>
MicroBit _uBit;

std::list<ManagedString> ___Element;
std::list<ManagedString> ___Element2;

int main()
{
    _uBit.init();
    ___Element = {ManagedString(""), ManagedString(""), ManagedString("")};
    ___Element2 = {ManagedString(""), ManagedString(""), ManagedString("")};

    _uBit.display.scroll(ManagedString(___Element == ___Element2));
    release_fiber();
}

And when compiled produces this error

***** cross compilation failed with response:
[1/3] Building the NEPOprog.
In file included from ../ora-cc-rsc/RobotMbed/libs2017//ble/ble/GattClient.h:22,
                 from ../ora-cc-rsc/RobotMbed/libs2017//ble/ble/BLE.h:23,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/bluetooth/MicroBitBLEManager.h:42,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:69,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
../ora-cc-rsc/RobotMbed/libs2017//ble/ble/ServiceDiscovery.h: In member function 'virtual ble_error_t ServiceDiscovery::reset()':
../ora-cc-rsc/RobotMbed/libs2017//ble/ble/ServiceDiscovery.h:148:77: warning: implicitly-declared 'UUID& UUID::operator=(const UUID&)' is deprecated [-Wdeprecated-copy]
  148 |         matchingServiceUUID        = UUID::ShortUUIDBytes_t(BLE_UUID_UNKNOWN);
      |                                                                             ^
In file included from ../ora-cc-rsc/RobotMbed/libs2017//ble/ble/GattService.h:20,
                 from ../ora-cc-rsc/RobotMbed/libs2017//ble/ble/GattServer.h:21,
                 from ../ora-cc-rsc/RobotMbed/libs2017//ble/ble/BLE.h:22,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/bluetooth/MicroBitBLEManager.h:42,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:69,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
../ora-cc-rsc/RobotMbed/libs2017//ble/ble/UUID.h:164:5: note: because 'UUID' has user-provided 'UUID::UUID(const UUID&)'
  164 |     UUID(const UUID &source) {
      |     ^~~~
In file included from ../ora-cc-rsc/RobotMbed/libs2017//ble/ble/GattClient.h:22,
                 from ../ora-cc-rsc/RobotMbed/libs2017//ble/ble/BLE.h:23,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/bluetooth/MicroBitBLEManager.h:42,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:69,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
../ora-cc-rsc/RobotMbed/libs2017//ble/ble/ServiceDiscovery.h:150:77: warning: implicitly-declared 'UUID& UUID::operator=(const UUID&)' is deprecated [-Wdeprecated-copy]
  150 |         matchingCharacteristicUUID = UUID::ShortUUIDBytes_t(BLE_UUID_UNKNOWN);
      |                                                                             ^
In file included from ../ora-cc-rsc/RobotMbed/libs2017//ble/ble/GattService.h:20,
                 from ../ora-cc-rsc/RobotMbed/libs2017//ble/ble/GattServer.h:21,
                 from ../ora-cc-rsc/RobotMbed/libs2017//ble/ble/BLE.h:22,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/bluetooth/MicroBitBLEManager.h:42,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:69,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
../ora-cc-rsc/RobotMbed/libs2017//ble/ble/UUID.h:164:5: note: because 'UUID' has user-provided 'UUID::UUID(const UUID&)'
  164 |     UUID(const UUID &source) {
      |     ^~~~
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/list:63,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/NEPODefs.h:70,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:4:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h: In instantiation of 'bool std::operator==(const std::__cxx11::list<_Tp, _Alloc>&, const std::__cxx11::list<_Tp, _Alloc>&) [with _Tp = ManagedString; _Alloc = std::allocator<ManagedString>]':
/tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:20:54:   required from here
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h:2004:56: error: no match for 'operator==' (operand types are 'const ManagedString' and 'const ManagedString')
 2004 |       while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2)
      |                                                  ~~~~~~^~~~~~~~
In file included from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:43,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/types/ManagedString.h:264:10: note: candidate: 'bool ManagedString::operator==(const ManagedString&)' <near match>
  264 |     bool operator== (const ManagedString& s);
      |          ^~~~~~~~
../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/types/ManagedString.h:264:10: note:   passing 'const ManagedString*' as 'this' argument discards qualifiers
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/utility:70,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/array:38,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/core/MicroBitCompat.h:36,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:40,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_pair.h:448:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator==(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)'
  448 |     operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
      |     ^~~~~~~~
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_pair.h:448:5: note:   template argument deduction/substitution failed:
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/list:63,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/NEPODefs.h:70,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:4:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h:2004:56: note:   'const ManagedString' is not derived from 'const std::pair<_T1, _T2>'
 2004 |       while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2)
      |                                                  ~~~~~~^~~~~~~~
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_algobase.h:67,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/char_traits.h:39,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/string:40,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/stdexcept:39,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/array:39,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/core/MicroBitCompat.h:36,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:40,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_iterator.h:325:5: note: candidate: 'template<class _Iterator> bool std::operator==(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)'
  325 |     operator==(const reverse_iterator<_Iterator>& __x,
      |     ^~~~~~~~
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_iterator.h:325:5: note:   template argument deduction/substitution failed:
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/list:63,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/NEPODefs.h:70,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:4:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h:2004:56: note:   'const ManagedString' is not derived from 'const std::reverse_iterator<_Iterator>'
 2004 |       while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2)
      |                                                  ~~~~~~^~~~~~~~
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_algobase.h:67,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/char_traits.h:39,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/string:40,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/stdexcept:39,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/array:39,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/core/MicroBitCompat.h:36,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:40,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_iterator.h:363:5: note: candidate: 'template<class _IteratorL, class _IteratorR> bool std::operator==(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)'
  363 |     operator==(const reverse_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_iterator.h:363:5: note:   template argument deduction/substitution failed:
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/list:63,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/NEPODefs.h:70,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:4:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h:2004:56: note:   'const ManagedString' is not derived from 'const std::reverse_iterator<_Iterator>'
 2004 |       while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2)
      |                                                  ~~~~~~^~~~~~~~
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_algobase.h:67,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/char_traits.h:39,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/string:40,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/stdexcept:39,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/array:39,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/core/MicroBitCompat.h:36,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:40,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_iterator.h:1139:5: note: candidate: 'template<class _IteratorL, class _IteratorR> bool std::operator==(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)'
 1139 |     operator==(const move_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_iterator.h:1139:5: note:   template argument deduction/substitution failed:
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/list:63,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/NEPODefs.h:70,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:4:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h:2004:56: note:   'const ManagedString' is not derived from 'const std::move_iterator<_IteratorL>'
 2004 |       while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2)
      |                                                  ~~~~~~^~~~~~~~
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_algobase.h:67,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/char_traits.h:39,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/string:40,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/stdexcept:39,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/array:39,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/core/MicroBitCompat.h:36,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:40,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_iterator.h:1145:5: note: candidate: 'template<class _Iterator> bool std::operator==(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)'
 1145 |     operator==(const move_iterator<_Iterator>& __x,
      |     ^~~~~~~~
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_iterator.h:1145:5: note:   template argument deduction/substitution failed:
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/list:63,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/NEPODefs.h:70,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:4:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h:2004:56: note:   'const ManagedString' is not derived from 'const std::move_iterator<_IteratorL>'
 2004 |       while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2)
      |                                                  ~~~~~~^~~~~~~~
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/char_traits.h:40,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/string:40,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/stdexcept:39,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/array:39,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/core/MicroBitCompat.h:36,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:40,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/postypes.h:222:5: note: candidate: 'template<class _StateT> bool std::operator==(const std::fpos<_StateT>&, const std::fpos<_StateT>&)'
  222 |     operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
      |     ^~~~~~~~
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/postypes.h:222:5: note:   template argument deduction/substitution failed:
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/list:63,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/NEPODefs.h:70,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:4:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h:2004:56: note:   'const ManagedString' is not derived from 'const std::fpos<_StateT>'
 2004 |       while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2)
      |                                                  ~~~~~~^~~~~~~~
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/string:41,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/stdexcept:39,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/array:39,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/core/MicroBitCompat.h:36,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:40,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/allocator.h:168:5: note: candidate: 'template<class _T1, class _T2> bool std::operator==(const std::allocator<_CharT>&, const std::allocator<_T2>&)'
  168 |     operator==(const allocator<_T1>&, const allocator<_T2>&)
      |     ^~~~~~~~
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/allocator.h:168:5: note:   template argument deduction/substitution failed:
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/list:63,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/NEPODefs.h:70,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:4:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h:2004:56: note:   'const ManagedString' is not derived from 'const std::allocator<_CharT>'
 2004 |       while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2)
      |                                                  ~~~~~~^~~~~~~~
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/string:55,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/stdexcept:39,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/array:39,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/core/MicroBitCompat.h:36,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:40,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/basic_string.h:6141:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator==(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)'
 6141 |     operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/basic_string.h:6141:5: note:   template argument deduction/substitution failed:
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/list:63,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/NEPODefs.h:70,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:4:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h:2004:56: note:   'const ManagedString' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
 2004 |       while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2)
      |                                                  ~~~~~~^~~~~~~~
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/string:55,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/stdexcept:39,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/array:39,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/core/MicroBitCompat.h:36,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:40,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/basic_string.h:6149:5: note: candidate: 'template<class _CharT> typename __gnu_cxx::__enable_if<std::__is_char<_Tp>::__value, bool>::__type std::operator==(const std::__cxx11::basic_string<_CharT>&, const std::__cxx11::basic_string<_CharT>&)'
 6149 |     operator==(const basic_string<_CharT>& __lhs,
      |     ^~~~~~~~
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/basic_string.h:6149:5: note:   template argument deduction/substitution failed:
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/list:63,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/NEPODefs.h:70,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:4:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h:2004:56: note:   'const ManagedString' is not derived from 'const std::__cxx11::basic_string<_CharT>'
 2004 |       while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2)
      |                                                  ~~~~~~^~~~~~~~
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/string:55,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/stdexcept:39,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/array:39,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/core/MicroBitCompat.h:36,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:40,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/basic_string.h:6163:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator==(const _CharT*, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)'
 6163 |     operator==(const _CharT* __lhs,
      |     ^~~~~~~~
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/basic_string.h:6163:5: note:   template argument deduction/substitution failed:
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/list:63,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/NEPODefs.h:70,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:4:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h:2004:56: note:   mismatched types 'const _CharT*' and 'ManagedString'
 2004 |       while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2)
      |                                                  ~~~~~~^~~~~~~~
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/string:55,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/stdexcept:39,
                 from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/array:39,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/core/MicroBitCompat.h:36,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:40,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/basic_string.h:6175:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator==(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&, const _CharT*)'
 6175 |     operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/basic_string.h:6175:5: note:   template argument deduction/substitution failed:
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/list:63,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/NEPODefs.h:70,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:4:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h:2004:56: note:   'const ManagedString' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
 2004 |       while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2)
      |                                                  ~~~~~~^~~~~~~~
In file included from ../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/core/MicroBitCompat.h:36,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:40,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/array:252:5: note: candidate: 'template<class _Tp, unsigned int _Nm> bool std::operator==(const std::array<_Tp, _Nm>&, const std::array<_Tp, _Nm>&)'
  252 |     operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
      |     ^~~~~~~~
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/array:252:5: note:   template argument deduction/substitution failed:
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/list:63,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/NEPODefs.h:70,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:4:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h:2004:56: note:   'const ManagedString' is not derived from 'const std::array<_Tp, _Nm>'
 2004 |       while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2)
      |                                                  ~~~~~~^~~~~~~~
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h:1991:5: note: candidate: 'template<class _Tp, class _Alloc> bool std::operator==(const std::__cxx11::list<_Tp, _Alloc>&, const std::__cxx11::list<_Tp, _Alloc>&)'
 1991 |     operator==(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)
      |     ^~~~~~~~
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h:1991:5: note:   template argument deduction/substitution failed:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h:2004:56: note:   'const ManagedString' is not derived from 'const std::__cxx11::list<_Tp, _Alloc>'
 2004 |       while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2)
      |                                                  ~~~~~~^~~~~~~~
In file included from ../ora-cc-rsc/RobotMbed/libs2017//ble/ble/FunctionPointerWithContext.h:21,
                 from ../ora-cc-rsc/RobotMbed/libs2017//ble/ble/CallChainOfFunctionPointersWithContext.h:20,
                 from ../ora-cc-rsc/RobotMbed/libs2017//ble/ble/Gap.h:25,
                 from ../ora-cc-rsc/RobotMbed/libs2017//ble/ble/BLE.h:21,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit-dal/inc/bluetooth/MicroBitBLEManager.h:42,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/MicroBit.h:69,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:3:
../ora-cc-rsc/RobotMbed/libs2017//ble/ble/SafeBool.h:102:6: note: candidate: 'template<class T, class U> void operator==(const SafeBool<T>&, const SafeBool<U>&)'
  102 | void operator==(const SafeBool<T>& lhs,const SafeBool<U>& rhs) {
      |      ^~~~~~~~
../ora-cc-rsc/RobotMbed/libs2017//ble/ble/SafeBool.h:102:6: note:   template argument deduction/substitution failed:
In file included from /opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/list:63,
                 from ../ora-cc-rsc/RobotMbed/libs2017//microbit/inc/NEPODefs.h:70,
                 from /tmp/3Nq4N7j_U__w/NEPOprog/source/NEPOprog.cpp:4:
/opt/compilers/gcc-arm-none-eabi-9-2020-q2-update/arm-none-eabi/include/c++/9.3.1/bits/stl_list.h:2004:56: note:   'const ManagedString' is not derived from 'const SafeBool<T>'
 2004 |       while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2)
      |                                                  ~~~~~~^~~~~~~~
Error in building !!!
***** for program:
#define _GNU_SOURCE

#include "MicroBit.h"
#include "NEPODefs.h"
#include <list>
#include <array>
#include <stdlib.h>
MicroBit _uBit;

std::list<ManagedString> ___Element;
std::list<ManagedString> ___Element2;

int main()
{
    _uBit.init();
    ___Element = {ManagedString(""), ManagedString(""), ManagedString("")};
    ___Element2 = {ManagedString(""), ManagedString(""), ManagedString("")};

    _uBit.display.scroll(ManagedString(___Element == ___Element2));
    release_fiber();
}

*****
RaghuvirShirodkar commented 2 years ago

Duplicate of #966