Skip to content

Instantly share code, notes, and snippets.

@AlexandreGerault
Last active June 4, 2020 13:37
Show Gist options
  • Save AlexandreGerault/bce1c0e8f0010c9261b6d3b157b2d102 to your computer and use it in GitHub Desktop.
Save AlexandreGerault/bce1c0e8f0010c9261b6d3b157b2d102 to your computer and use it in GitHub Desktop.
Dans le fichier inclus depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:7,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/utils/factory.hpp: Dans l'instanciation de « class ww::factory<ww::room_interface> » :
/run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:28:33: requis depuis ici
/run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/utils/factory.hpp:22:16: erreur: le type abstrait « ww::room_interface » retourné est invalide
22 | Object make(std::string const &key, Args &&... args) const {
| ^~~~
Dans le fichier inclus depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:6,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/room_interface.hpp:11:11: note: parce que les fonctions virtuelles suivantes sont pures dans « ww::room_interface »:
11 | class room_interface {
| ^~~~~~~~~~~~~~
/run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/room_interface.hpp:16:22: note: « virtual void ww::room_interface::start() »
16 | virtual void start() = 0;
| ^~~~~
/run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/room_interface.cpp:6:32: erreur: définition de « ww::room_interface::room_interface() » explicitement par défaut
6 | room_interface::room_interface() {
| ^
Dans le fichier inclus depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/room_interface.cpp:1:
/run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/room_interface.hpp:14:9: note: « ww::room_interface::room_interface() » explicitement par défaut ici
14 | room_interface() = default;
| ^~~~~~~~~~~~~~
Dans le fichier inclus depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp: Dans la fonction membre « void ww::server_rooms::create_room(const string&, Args&& ...) »:
/run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:16:58: erreur: « class ww::factory<ww::room_interface> » n'a pas de membre nommé « make »
16 | m_rooms.insert(m_rooms.end(), m_room_factory.make(type, args...));
| ^~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc: Dans l'instanciation de « std::__cxx11::list<_Tp, _Alloc>::__remove_return_type std::__cxx11::list<_Tp, _Alloc>::remove(const value_type&) [with _Tp = ww::room_interface; _Alloc = std::allocator<ww::room_interface>; std::__cxx11::list<_Tp, _Alloc>::__remove_return_type = long unsigned int; std::__cxx11::list<_Tp, _Alloc>::value_type = ww::room_interface] » :
/run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:18:24: requis depuis ici
/usr/include/c++/10.1.0/bits/list.tcc:342:17: erreur: no match for « operator== » (operand types are « ww::room_interface » and « const value_type » {aka « const ww::room_interface »})
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/bits/stl_algobase.h:67,
depuis /usr/include/c++/10.1.0/list:60,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/stl_iterator.h:434:5: note: candidat : « template<class _IteratorL, class _IteratorR> constexpr bool std::operator==(const std::reverse_iterator<_IteratorL>&, const std::reverse_iterator<_IteratorR>&) requires requires{{std::operator==::__x->base() == std::operator==::__y->base()} -> decltype(auto) [requires std::convertible_to<<placeholder>, bool>];} » (inversé)
434 | operator==(const reverse_iterator<_IteratorL>& __x,
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/stl_iterator.h:434:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « const value_type » {aka « const ww::room_interface »} n'est pas dérivé de « const std::reverse_iterator<_IteratorL> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/bits/stl_algobase.h:67,
depuis /usr/include/c++/10.1.0/list:60,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/stl_iterator.h:1427:5: note: candidat : « template<class _IteratorL, class _IteratorR> constexpr bool std::operator==(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&) requires requires{{std::operator==::__x->base() == std::operator==::__y->base()} -> decltype(auto) [requires std::convertible_to<<placeholder>, bool>];} » (inversé)
1427 | operator==(const move_iterator<_IteratorL>& __x,
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/stl_iterator.h:1427:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « const value_type » {aka « const ww::room_interface »} n'est pas dérivé de « const std::move_iterator<_IteratorL> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:61,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/allocator.h:206:5: note: candidat : « template<class _T1, class _T2> constexpr bool std::operator==(const std::allocator<_Up>&, const std::allocator<_T2>&) » (inversé)
206 | operator==(const allocator<_T1>&, const allocator<_T2>&)
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/allocator.h:206:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « const value_type » {aka « const ww::room_interface »} n'est pas dérivé de « const std::allocator<_Up> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/bits/basic_string.h:48,
depuis /usr/include/c++/10.1.0/string:55,
depuis /usr/include/c++/10.1.0/bits/locale_classes.h:40,
depuis /usr/include/c++/10.1.0/bits/ios_base.h:41,
depuis /usr/include/c++/10.1.0/streambuf:41,
depuis /usr/include/c++/10.1.0/bits/streambuf_iterator.h:35,
depuis /usr/include/c++/10.1.0/iterator:66,
depuis /usr/include/c++/10.1.0/bits/ranges_algobase.h:36,
depuis /usr/include/c++/10.1.0/bits/ranges_uninitialized.h:36,
depuis /usr/include/c++/10.1.0/memory:69,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/string_view:496:5: note: candidat : « template<class _CharT, class _Traits> constexpr bool std::operator==(std::basic_string_view<_CharT, _Traits>, std::__type_identity_t<std::basic_string_view<_CharT, _Traits> >) » (inversé)
496 | operator==(basic_string_view<_CharT, _Traits> __x,
| ^~~~~~~~
/usr/include/c++/10.1.0/string_view:496:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « ww::room_interface » n'est pas dérivé de « std::basic_string_view<_CharT, _Traits> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/string:55,
depuis /usr/include/c++/10.1.0/bits/locale_classes.h:40,
depuis /usr/include/c++/10.1.0/bits/ios_base.h:41,
depuis /usr/include/c++/10.1.0/streambuf:41,
depuis /usr/include/c++/10.1.0/bits/streambuf_iterator.h:35,
depuis /usr/include/c++/10.1.0/iterator:66,
depuis /usr/include/c++/10.1.0/bits/ranges_algobase.h:36,
depuis /usr/include/c++/10.1.0/bits/ranges_uninitialized.h:36,
depuis /usr/include/c++/10.1.0/memory:69,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/basic_string.h:6175:5: note: candidat : « template<class _CharT, class _Traits, class _Alloc> bool std::operator==(const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&, const _CharT*) » (inversé)
6175 | operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/basic_string.h:6175:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « const value_type » {aka « const ww::room_interface »} n'est pas dérivé de « const std::__cxx11::basic_string<_CharT, _Traits, _Allocator> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/bits/ios_base.h:46,
depuis /usr/include/c++/10.1.0/streambuf:41,
depuis /usr/include/c++/10.1.0/bits/streambuf_iterator.h:35,
depuis /usr/include/c++/10.1.0/iterator:66,
depuis /usr/include/c++/10.1.0/bits/ranges_algobase.h:36,
depuis /usr/include/c++/10.1.0/bits/ranges_uninitialized.h:36,
depuis /usr/include/c++/10.1.0/memory:69,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/system_error:349:3: note: candidat : « bool std::operator==(const std::error_code&, const std::error_condition&) » (inversé)
349 | operator==(const error_code& __lhs, const error_condition& __rhs) noexcept
| ^~~~~~~~
/usr/include/c++/10.1.0/system_error:349:32: note: pas de conversion connue pour convertir l'argument 1 depuis « const value_type » {aka « const ww::room_interface »} vers « const std::error_code& »
349 | operator==(const error_code& __lhs, const error_condition& __rhs) noexcept
| ~~~~~~~~~~~~~~~~~~^~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/ranges:45,
depuis /usr/include/c++/10.1.0/bits/ranges_algobase.h:38,
depuis /usr/include/c++/10.1.0/bits/ranges_uninitialized.h:36,
depuis /usr/include/c++/10.1.0/memory:69,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/optional:985:5: note: candidat : « template<class _Tp, class _Up> constexpr std::__optional_relop_t<decltype ((declval<_Tp>() == declval<_Up>()))> std::operator==(const std::optional<_Tp>&, const std::optional<_Up>&) » (inversé)
985 | operator==(const optional<_Tp>& __lhs, const optional<_Up>& __rhs)
| ^~~~~~~~
/usr/include/c++/10.1.0/optional:985:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « const value_type » {aka « const ww::room_interface »} n'est pas dérivé de « const std::optional<_Tp> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/ranges:45,
depuis /usr/include/c++/10.1.0/bits/ranges_algobase.h:38,
depuis /usr/include/c++/10.1.0/bits/ranges_uninitialized.h:36,
depuis /usr/include/c++/10.1.0/memory:69,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/optional:1045:5: note: candidat : « template<class _Tp> constexpr bool std::operator==(const std::optional<_Tp>&, std::nullopt_t) » (inversé)
1045 | operator==(const optional<_Tp>& __lhs, nullopt_t) noexcept
| ^~~~~~~~
/usr/include/c++/10.1.0/optional:1045:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « const value_type » {aka « const ww::room_interface »} n'est pas dérivé de « const std::optional<_Tp> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/ranges:45,
depuis /usr/include/c++/10.1.0/bits/ranges_algobase.h:38,
depuis /usr/include/c++/10.1.0/bits/ranges_uninitialized.h:36,
depuis /usr/include/c++/10.1.0/memory:69,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/optional:1113:5: note: candidat : « template<class _Tp, class _Up> constexpr std::__optional_relop_t<decltype ((declval<_Tp>() == declval<_Up>()))> std::operator==(const std::optional<_Tp>&, const _Up&) » (inversé)
1113 | operator==(const optional<_Tp>& __lhs, const _Up& __rhs)
| ^~~~~~~~
/usr/include/c++/10.1.0/optional:1113:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « const value_type » {aka « const ww::room_interface »} n'est pas dérivé de « const std::optional<_Tp> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/ranges:45,
depuis /usr/include/c++/10.1.0/bits/ranges_algobase.h:38,
depuis /usr/include/c++/10.1.0/bits/ranges_uninitialized.h:36,
depuis /usr/include/c++/10.1.0/memory:69,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/optional:1119:5: note: candidat : « template<class _Tp, class _Up> constexpr std::__optional_relop_t<decltype ((declval<_Up>() == declval<_Tp>()))> std::operator==(const _Up&, const std::optional<_Tp>&) » (inversé)
1119 | operator==(const _Up& __lhs, const optional<_Tp>& __rhs)
| ^~~~~~~~
/usr/include/c++/10.1.0/optional:1119:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « ww::room_interface » n'est pas dérivé de « const std::optional<_Tp> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/ranges:46,
depuis /usr/include/c++/10.1.0/bits/ranges_algobase.h:38,
depuis /usr/include/c++/10.1.0/bits/ranges_uninitialized.h:36,
depuis /usr/include/c++/10.1.0/memory:69,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/tuple:1393:5: note: candidat : « template<class ... _TElements, class ... _UElements> constexpr bool std::operator==(const std::tuple<_Tps ...>&, const std::tuple<_UTypes ...>&) » (inversé)
1393 | operator==(const tuple<_TElements...>& __t,
| ^~~~~~~~
/usr/include/c++/10.1.0/tuple:1393:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « const value_type » {aka « const ww::room_interface »} n'est pas dérivé de « const std::tuple<_Tps ...> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/memory:83,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/unique_ptr.h:752:5: note: candidat : « template<class _Tp, class _Dp, class _Up, class _Ep> bool std::operator==(const std::unique_ptr<_Tp, _Dp>&, const std::unique_ptr<_Up, _Ep>&) » (inversé)
752 | operator==(const unique_ptr<_Tp, _Dp>& __x,
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/unique_ptr.h:752:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « const value_type » {aka « const ww::room_interface »} n'est pas dérivé de « const std::unique_ptr<_Tp, _Dp> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/memory:83,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/unique_ptr.h:759:5: note: candidat : « template<class _Tp, class _Dp> bool std::operator==(const std::unique_ptr<_Tp, _Dp>&, std::nullptr_t) » (inversé)
759 | operator==(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/unique_ptr.h:759:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « const value_type » {aka « const ww::room_interface »} n'est pas dérivé de « const std::unique_ptr<_Tp, _Dp> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/bits/shared_ptr.h:52,
depuis /usr/include/c++/10.1.0/memory:84,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/shared_ptr_base.h:1439:5: note: candidat : « template<class _Tp1, class _Tp2, __gnu_cxx::_Lock_policy _Lp> bool std::operator==(const std::__shared_ptr<_Tp1, _Lp>&, const std::__shared_ptr<_Tp2, _Lp>&) » (inversé)
1439 | operator==(const __shared_ptr<_Tp1, _Lp>& __a,
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/shared_ptr_base.h:1439:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « const value_type » {aka « const ww::room_interface »} n'est pas dérivé de « const std::__shared_ptr<_Tp1, _Lp> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/bits/shared_ptr.h:52,
depuis /usr/include/c++/10.1.0/memory:84,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/shared_ptr_base.h:1445:5: note: candidat : « template<class _Tp, __gnu_cxx::_Lock_policy _Lp> bool std::operator==(const std::__shared_ptr<_Tp, _Lp>&, std::nullptr_t) » (inversé)
1445 | operator==(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/shared_ptr_base.h:1445:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « const value_type » {aka « const ww::room_interface »} n'est pas dérivé de « const std::__shared_ptr<_Tp, _Lp> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/memory:84,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/shared_ptr.h:436:5: note: candidat : « template<class _Tp, class _Up> bool std::operator==(const std::shared_ptr<_Tp>&, const std::shared_ptr<_Tp>&) » (inversé)
436 | operator==(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/shared_ptr.h:436:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « const value_type » {aka « const ww::room_interface »} n'est pas dérivé de « const std::shared_ptr<_Tp> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/memory:84,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/shared_ptr.h:442:5: note: candidat : « template<class _Tp> bool std::operator==(const std::shared_ptr<_Tp>&, std::nullptr_t) » (inversé)
442 | operator==(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/shared_ptr.h:442:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « const value_type » {aka « const ww::room_interface »} n'est pas dérivé de « const std::shared_ptr<_Tp> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/functional:59,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/utils/factory.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:7,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/std_function.h:680:5: note: candidat : « template<class _Res, class ... _Args> bool std::operator==(const std::function<_Res(_ArgTypes ...)>&, std::nullptr_t) » (inversé)
680 | operator==(const function<_Res(_Args...)>& __f, nullptr_t) noexcept
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/std_function.h:680:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « const value_type » {aka « const ww::room_interface »} n'est pas dérivé de « const std::function<_Res(_ArgTypes ...)> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/bits/stl_algobase.h:64,
depuis /usr/include/c++/10.1.0/list:60,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/stl_pair.h:466:5: note: candidat : « template<class _T1, class _T2> constexpr bool std::operator==(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&) »
466 | operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/stl_pair.h:466:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « ww::room_interface » n'est pas dérivé de « const std::pair<_T1, _T2> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:63,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/stl_list.h:1995:5: note: candidat : « template<class _Tp, class _Alloc> bool std::operator==(const std::__cxx11::list<_Tp, _Alloc>&, const std::__cxx11::list<_Tp, _Alloc>&) »
1995 | operator==(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/stl_list.h:1995:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « ww::room_interface » n'est pas dérivé de « const std::__cxx11::list<_Tp, _Alloc> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/iosfwd:40,
depuis /usr/include/c++/10.1.0/iterator:64,
depuis /usr/include/c++/10.1.0/bits/ranges_algobase.h:36,
depuis /usr/include/c++/10.1.0/bits/ranges_uninitialized.h:36,
depuis /usr/include/c++/10.1.0/memory:69,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/postypes.h:222:5: note: candidat : « template<class _StateT> bool std::operator==(const std::fpos<_StateT>&, const std::fpos<_StateT>&) »
222 | operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/postypes.h:222:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « ww::room_interface » n'est pas dérivé de « const std::fpos<_StateT> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/bits/basic_string.h:48,
depuis /usr/include/c++/10.1.0/string:55,
depuis /usr/include/c++/10.1.0/bits/locale_classes.h:40,
depuis /usr/include/c++/10.1.0/bits/ios_base.h:41,
depuis /usr/include/c++/10.1.0/streambuf:41,
depuis /usr/include/c++/10.1.0/bits/streambuf_iterator.h:35,
depuis /usr/include/c++/10.1.0/iterator:66,
depuis /usr/include/c++/10.1.0/bits/ranges_algobase.h:36,
depuis /usr/include/c++/10.1.0/bits/ranges_uninitialized.h:36,
depuis /usr/include/c++/10.1.0/memory:69,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/string_view:490:5: note: candidat : « template<class _CharT, class _Traits> constexpr bool std::operator==(std::basic_string_view<_CharT, _Traits>, std::basic_string_view<_CharT, _Traits>) »
490 | operator==(basic_string_view<_CharT, _Traits> __x,
| ^~~~~~~~
/usr/include/c++/10.1.0/string_view:490:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « ww::room_interface » n'est pas dérivé de « std::basic_string_view<_CharT, _Traits> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/string:55,
depuis /usr/include/c++/10.1.0/bits/locale_classes.h:40,
depuis /usr/include/c++/10.1.0/bits/ios_base.h:41,
depuis /usr/include/c++/10.1.0/streambuf:41,
depuis /usr/include/c++/10.1.0/bits/streambuf_iterator.h:35,
depuis /usr/include/c++/10.1.0/iterator:66,
depuis /usr/include/c++/10.1.0/bits/ranges_algobase.h:36,
depuis /usr/include/c++/10.1.0/bits/ranges_uninitialized.h:36,
depuis /usr/include/c++/10.1.0/memory:69,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/basic_string.h:6153:5: note: candidat : « template<class _CharT, class _Traits, class _Alloc> bool std::operator==(const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&, const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&) »
6153 | operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/basic_string.h:6153:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « ww::room_interface » n'est pas dérivé de « const std::__cxx11::basic_string<_CharT, _Traits, _Allocator> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/string:55,
depuis /usr/include/c++/10.1.0/bits/locale_classes.h:40,
depuis /usr/include/c++/10.1.0/bits/ios_base.h:41,
depuis /usr/include/c++/10.1.0/streambuf:41,
depuis /usr/include/c++/10.1.0/bits/streambuf_iterator.h:35,
depuis /usr/include/c++/10.1.0/iterator:66,
depuis /usr/include/c++/10.1.0/bits/ranges_algobase.h:36,
depuis /usr/include/c++/10.1.0/bits/ranges_uninitialized.h:36,
depuis /usr/include/c++/10.1.0/memory:69,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/basic_string.h:6161:5: note: candidat : « 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>&) »
6161 | operator==(const basic_string<_CharT>& __lhs,
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/basic_string.h:6161:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « ww::room_interface » n'est pas dérivé de « const std::__cxx11::basic_string<_CharT> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
make[3]: *** [CMakeFiles/server_lib.dir/build.make:96 : CMakeFiles/server_lib.dir/src/rooms/room_interface.cpp.o] Erreur 1
Dans le fichier inclus depuis /usr/include/c++/10.1.0/bits/ios_base.h:46,
depuis /usr/include/c++/10.1.0/streambuf:41,
depuis /usr/include/c++/10.1.0/bits/streambuf_iterator.h:35,
depuis /usr/include/c++/10.1.0/iterator:66,
depuis /usr/include/c++/10.1.0/bits/ranges_algobase.h:36,
depuis /usr/include/c++/10.1.0/bits/ranges_uninitialized.h:36,
depuis /usr/include/c++/10.1.0/memory:69,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/system_error:342:3: note: candidat : « bool std::operator==(const std::error_code&, const std::error_code&) »
342 | operator==(const error_code& __lhs, const error_code& __rhs) noexcept
| ^~~~~~~~
/usr/include/c++/10.1.0/system_error:342:32: note: pas de conversion connue pour convertir l'argument 1 depuis « ww::room_interface » vers « const std::error_code& »
342 | operator==(const error_code& __lhs, const error_code& __rhs) noexcept
| ~~~~~~~~~~~~~~~~~~^~~~~
/usr/include/c++/10.1.0/system_error:357:3: note: candidat : « bool std::operator==(const std::error_condition&, const std::error_condition&) »
357 | operator==(const error_condition& __lhs,
| ^~~~~~~~
/usr/include/c++/10.1.0/system_error:357:37: note: pas de conversion connue pour convertir l'argument 1 depuis « ww::room_interface » vers « const std::error_condition& »
357 | operator==(const error_condition& __lhs,
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~
make[3]: *** Attente des tâches non terminées....
Dans le fichier inclus depuis /usr/include/c++/10.1.0/iterator:66,
depuis /usr/include/c++/10.1.0/bits/ranges_algobase.h:36,
depuis /usr/include/c++/10.1.0/bits/ranges_uninitialized.h:36,
depuis /usr/include/c++/10.1.0/memory:69,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/streambuf_iterator.h:227:5: note: candidat : « template<class _CharT, class _Traits> bool std::operator==(const std::istreambuf_iterator<_CharT, _Traits>&, const std::istreambuf_iterator<_CharT, _Traits>&) »
227 | operator==(const istreambuf_iterator<_CharT, _Traits>& __a,
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/streambuf_iterator.h:227:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « ww::room_interface » n'est pas dérivé de « const std::istreambuf_iterator<_CharT, _Traits> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/tuple:39,
depuis /usr/include/c++/10.1.0/ranges:46,
depuis /usr/include/c++/10.1.0/bits/ranges_algobase.h:38,
depuis /usr/include/c++/10.1.0/bits/ranges_uninitialized.h:36,
depuis /usr/include/c++/10.1.0/memory:69,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:5,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/array:253:5: note: candidat : « template<class _Tp, long unsigned int _Nm> constexpr bool std::operator==(const std::array<_Tp, _Nm>&, const std::array<_Tp, _Nm>&) »
253 | operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
| ^~~~~~~~
/usr/include/c++/10.1.0/array:253:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « ww::room_interface » n'est pas dérivé de « const std::array<_Tp, _Nm> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/unordered_map:47,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/core/configuration.hpp:8,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/room_interface.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:6,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/unordered_map.h:2090:5: note: candidat : « template<class _Key1, class _Tp1, class _Hash1, class _Pred1, class _Alloc1> bool std::operator==(const std::unordered_map<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1>&, const std::unordered_map<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1>&) »
2090 | operator==(const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/unordered_map.h:2090:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « ww::room_interface » n'est pas dérivé de « const std::unordered_map<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/unordered_map:47,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/core/configuration.hpp:8,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/room_interface.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:6,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/unordered_map.h:2104:5: note: candidat : « template<class _Key1, class _Tp1, class _Hash1, class _Pred1, class _Alloc1> bool std::operator==(const std::unordered_multimap<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1>&, const std::unordered_multimap<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1>&) »
2104 | operator==(const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/unordered_map.h:2104:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « ww::room_interface » n'est pas dérivé de « const std::unordered_multimap<_Key1, _Tp1, _Hash1, _Pred1, _Alloc1> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/vector:67,
depuis /usr/include/c++/10.1.0/functional:62,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/utils/factory.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:7,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/stl_vector.h:1892:5: note: candidat : « template<class _Tp, class _Alloc> bool std::operator==(const std::vector<_Tp, _Alloc>&, const std::vector<_Tp, _Alloc>&) »
1892 | operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
| ^~~~~~~~
/usr/include/c++/10.1.0/bits/stl_vector.h:1892:5: note: la déduction/substitution de l'argument du patron a échoué:
Dans le fichier inclus depuis /usr/include/c++/10.1.0/list:64,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/list.tcc:342:17: note: « ww::room_interface » n'est pas dérivé de « const std::vector<_Tp, _Alloc> »
342 | if (*__first == __value)
| ~~~~~~~~~^~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/bits/stl_list.h:64,
depuis /usr/include/c++/10.1.0/list:63,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/ext/aligned_buffer.h: Dans l'instanciation de « struct __gnu_cxx::__aligned_membuf<ww::room_interface>::_Tp2 » :
/usr/include/c++/10.1.0/ext/aligned_buffer.h:56:33: requis par « struct __gnu_cxx::__aligned_membuf<ww::room_interface> »
/usr/include/c++/10.1.0/bits/stl_list.h:169:40: requis par « struct std::_List_node<ww::room_interface> »
/usr/include/c++/10.1.0/bits/list.tcc:109:14: requis par « std::__cxx11::list<_Tp, _Alloc>::iterator std::__cxx11::list<_Tp, _Alloc>::insert(std::__cxx11::list<_Tp, _Alloc>::const_iterator, const value_type&) [with _Tp = ww::room_interface; _Alloc = std::allocator<ww::room_interface>; std::__cxx11::list<_Tp, _Alloc>::iterator = std::__cxx11::list<ww::room_interface>::iterator; std::__cxx11::list<_Tp, _Alloc>::const_iterator = std::__cxx11::list<ww::room_interface>::const_iterator; std::__cxx11::list<_Tp, _Alloc>::value_type = ww::room_interface] »
/run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:22:55: requis depuis ici
/usr/include/c++/10.1.0/ext/aligned_buffer.h:54:25: erreur: ne peut déclarer le champ « __gnu_cxx::__aligned_membuf<ww::room_interface>::_Tp2::_M_t » comme étant de type abstrait « ww::room_interface »
54 | struct _Tp2 { _Tp _M_t; };
| ^~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/ext/alloc_traits.h:34,
depuis /usr/include/c++/10.1.0/bits/stl_list.h:60,
depuis /usr/include/c++/10.1.0/list:63,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/alloc_traits.h: Dans l'instanciation de « static constexpr void std::allocator_traits<std::allocator<_Up> >::construct(std::allocator_traits<std::allocator<_Up> >::allocator_type&, _Up*, _Args&& ...) [with _Up = ww::room_interface; _Args = {const ww::room_interface&}; _Tp = std::_List_node<ww::room_interface>; std::allocator_traits<std::allocator<_Up> >::allocator_type = std::allocator<std::_List_node<ww::room_interface> >] » :
/usr/include/c++/10.1.0/bits/stl_list.h:637:33: requis par « std::__cxx11::list<_Tp, _Alloc>::_Node* std::__cxx11::list<_Tp, _Alloc>::_M_create_node(_Args&& ...) [with _Args = {const ww::room_interface&}; _Tp = ww::room_interface; _Alloc = std::allocator<ww::room_interface>; std::__cxx11::list<_Tp, _Alloc>::_Node = std::__cxx11::list<ww::room_interface>::_Node] »
/usr/include/c++/10.1.0/bits/list.tcc:108:36: requis par « std::__cxx11::list<_Tp, _Alloc>::iterator std::__cxx11::list<_Tp, _Alloc>::insert(std::__cxx11::list<_Tp, _Alloc>::const_iterator, const value_type&) [with _Tp = ww::room_interface; _Alloc = std::allocator<ww::room_interface>; std::__cxx11::list<_Tp, _Alloc>::iterator = std::__cxx11::list<ww::room_interface>::iterator; std::__cxx11::list<_Tp, _Alloc>::const_iterator = std::__cxx11::list<ww::room_interface>::const_iterator; std::__cxx11::list<_Tp, _Alloc>::value_type = ww::room_interface] »
/run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:22:55: requis depuis ici
/usr/include/c++/10.1.0/bits/alloc_traits.h:514:21: erreur: pas de fonction correspondant à l'appel « construct_at(ww::room_interface*&, const ww::room_interface&) »
514 | std::construct_at(__p, std::forward<_Args>(__args)...);
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dans le fichier inclus depuis /usr/include/c++/10.1.0/bits/alloc_traits.h:33,
depuis /usr/include/c++/10.1.0/ext/alloc_traits.h:34,
depuis /usr/include/c++/10.1.0/bits/stl_list.h:60,
depuis /usr/include/c++/10.1.0/list:63,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/include/rooms/server_rooms.hpp:4,
depuis /run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:1:
/usr/include/c++/10.1.0/bits/stl_construct.h:94:5: note: candidat : « template<class _Tp, class ... _Args> constexpr decltype (::new(void*(0)) _Tp) std::construct_at(_Tp*, _Args&& ...) »
94 | construct_at(_Tp* __location, _Args&&... __args)
| ^~~~~~~~~~~~
/usr/include/c++/10.1.0/bits/stl_construct.h:94:5: note: la déduction/substitution de l'argument du patron a échoué:
/usr/include/c++/10.1.0/bits/stl_construct.h: Dans la substitution de « template<class _Tp, class ... _Args> constexpr decltype (::new(void*(0)) _Tp) std::construct_at(_Tp*, _Args&& ...) [with _Tp = ww::room_interface; _Args = {const ww::room_interface&}] » :
/usr/include/c++/10.1.0/bits/alloc_traits.h:514:21: requis par « static constexpr void std::allocator_traits<std::allocator<_Up> >::construct(std::allocator_traits<std::allocator<_Up> >::allocator_type&, _Up*, _Args&& ...) [with _Up = ww::room_interface; _Args = {const ww::room_interface&}; _Tp = std::_List_node<ww::room_interface>; std::allocator_traits<std::allocator<_Up> >::allocator_type = std::allocator<std::_List_node<ww::room_interface> >] »
/usr/include/c++/10.1.0/bits/stl_list.h:637:33: requis par « std::__cxx11::list<_Tp, _Alloc>::_Node* std::__cxx11::list<_Tp, _Alloc>::_M_create_node(_Args&& ...) [with _Args = {const ww::room_interface&}; _Tp = ww::room_interface; _Alloc = std::allocator<ww::room_interface>; std::__cxx11::list<_Tp, _Alloc>::_Node = std::__cxx11::list<ww::room_interface>::_Node] »
/usr/include/c++/10.1.0/bits/list.tcc:108:36: requis par « std::__cxx11::list<_Tp, _Alloc>::iterator std::__cxx11::list<_Tp, _Alloc>::insert(std::__cxx11::list<_Tp, _Alloc>::const_iterator, const value_type&) [with _Tp = ww::room_interface; _Alloc = std::allocator<ww::room_interface>; std::__cxx11::list<_Tp, _Alloc>::iterator = std::__cxx11::list<ww::room_interface>::iterator; std::__cxx11::list<_Tp, _Alloc>::const_iterator = std::__cxx11::list<ww::room_interface>::const_iterator; std::__cxx11::list<_Tp, _Alloc>::value_type = ww::room_interface] »
/run/media/alexandre-gerault/Seagate Expansion Drive/Programming/C++/werewolf/server_lib/src/rooms/server_rooms.cpp:22:55: requis depuis ici
/usr/include/c++/10.1.0/bits/stl_construct.h:96:17: erreur: expression « new » invalide pour le type de classe abstraite « ww::room_interface »
96 | -> decltype(::new((void*)0) _Tp(std::declval<_Args>()...))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
template<class Object, class... Args>
class factory {
public:
using Creator = std::function<std::unique_ptr<Object>(Args...)>;
void registers(std::string const &key, Creator const &creator) {
m_registry.emplace(key, creator);
}
Object make(std::string const &key, Args &&... args) const {
auto registry_iterator = m_registry.find(key);
if (registry_iterator != m_registry.end()) {
return (registry_iterator->second)(std::forward<Args>(args)...);
}
}
private:
std::unordered_map<std::string, Creator> m_registry;
};
class server_rooms {
public:
server_rooms();
template<class... Args>
void create_room(std::string const &type, Args &&... args) {
m_rooms.insert(m_rooms.end(), m_room_factory.make(type, args...));
}
void delete_room(room_interface const &room);
void remove_room(room_interface const &room);
void restore_room(room_interface const &room);
std::list<room_interface> list_rooms() const;
private:
void initFactory();
std::list<room_interface> m_rooms;
std::list<room_interface> m_removed_rooms;
factory<room_interface> m_room_factory;
};
void server_rooms::initFactory() {
m_room_factory.registers("text_room", [](std::string name) { return std::make_unique<text_room>(); });
m_room_factory.registers("voice_room", []() { return std::make_unique<voice_room>(); });
}
class room_interface {
public:
room_interface() = default;
explicit room_interface(const std::string &name);
virtual void start() = 0;
private:
configuration m_config;
room_state m_state;
std::string m_name;
};
int main(int argc, char *argv[]) {
server_rooms rooms;
rooms.create_room("text_room", "room name");
/*
* Compile time error: returned abstract type "room_interface" is invalid...
* 22 | Object make(std::string const &key, Args &&... args) const {
* | ^~~~
*/
return 0;
}
In instantiation of function template specialization 'ww::server_rooms::create_room<char const (&)[10]>' no viable conversion from returned value of type 'std::unique_ptr<ww::room_interface, std::default_delete<ww::room_interface> >' to function return type 'ww::room_interface'
In instantiation of function template specialization 'ww::server_rooms::create_room<char const (&)[10]>' no viable conversion from returned value of type 'std::unique_ptr<ww::room_interface, std::default_delete<ww::room_interface> >' to function return type 'ww::room_interface'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment