Giter Site home page Giter Site logo

Comments (10)

Pentarctagon avatar Pentarctagon commented on September 25, 2024 2

I'll get to this once I update the CI to use Ubuntu 24.04, which will most likely be in a few months, since at that point they'll trigger build failures due to -Werror. Though it looks like 24.04 only has gcc 13?

from wesnoth.

stevecotton avatar stevecotton commented on September 25, 2024 2

I've just set up a new PC with Debian Sid, so am getting the logspam now and will do something about it.

from wesnoth.

kloczek avatar kloczek commented on September 25, 2024

And extracted stderr

In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/label.hpp:18,
                 from src/gui/widgets/label.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/text_box_base.hpp:19,
                 from src/gui/widgets/multiline_text.hpp:17,
                 from src/gui/widgets/multiline_text.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/button.hpp:18,
                 from src/gui/widgets/button.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/scrollbar.hpp:18,
                 from src/gui/widgets/horizontal_scrollbar.hpp:18,
                 from src/gui/widgets/horizontal_scrollbar.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/drawing.hpp:18,
                 from src/gui/widgets/drawing.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/matrix.hpp:17,
                 from src/gui/widgets/matrix.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/multimenu_button.hpp:18,
                 from src/gui/widgets/multimenu_button.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/menu_button.hpp:18,
                 from src/gui/widgets/menu_button.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/multi_page.hpp:18,
                 from src/gui/widgets/multi_page.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/text_box_base.hpp:19,
                 from src/gui/widgets/text_box.hpp:18,
                 from src/gui/widgets/password_box.hpp:18,
                 from src/gui/widgets/password_box.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/panel.hpp:18,
                 from src/gui/widgets/panel.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/image.hpp:18,
                 from src/gui/widgets/image.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/text_box_base.hpp:19,
                 from src/gui/widgets/combobox.hpp:18,
                 from src/gui/widgets/combobox.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/minimap.hpp:18,
                 from src/gui/widgets/minimap.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/repeating_button.hpp:18,
                 from src/gui/widgets/repeating_button.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/progress_bar.hpp:18,
                 from src/gui/widgets/progress_bar.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/scrollbar_container.hpp:18,
                 from src/gui/widgets/listbox.hpp:19,
                 from src/gui/widgets/listbox.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/chatbox.hpp:20,
                 from src/gui/widgets/chatbox.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/addon_list.hpp:19,
                 from src/gui/widgets/addon_list.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/scrollbar_container.hpp:18,
                 from src/gui/widgets/scroll_text.hpp:18,
                 from src/gui/widgets/scroll_text.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/scrollbar_container.hpp:18,
                 from src/gui/widgets/scroll_label.hpp:18,
                 from src/gui/widgets/scroll_label.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/scrollbar_container.hpp:18,
                 from src/gui/widgets/scrollbar_panel.hpp:18,
                 from src/gui/widgets/scrollbar_panel.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/slider_base.hpp:18,
                 from src/gui/widgets/slider.hpp:19,
                 from src/gui/widgets/slider.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/size_lock.hpp:18,
                 from src/gui/widgets/size_lock.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/unit_advance.hpp:17,
                 from src/actions/advancement.cpp:30:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/spacer.hpp:18,
                 from src/gui/widgets/spacer.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
src/gui/widgets/addon_list.cpp: In member function ‘const addon_info* gui2::addon_list::get_selected_addon() const’:
src/gui/widgets/addon_list.cpp:316:24: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  316 |         const listbox& list = find_widget<const listbox>(&get_grid(), "addons", false);
      |                        ^~~~
src/gui/widgets/addon_list.cpp:316:57: note: the temporary was destroyed at the end of the full expression ‘gui2::find_widget<const listbox>(((const gui2::widget*)(&((const gui2::addon_list*)this)->gui2::addon_list::gui2::container_base.gui2::container_base::get_grid())), std::__cxx11::basic_string<char>(((const char*)"addons"), std::allocator<char>()), 0)’
  316 |         const listbox& list = find_widget<const listbox>(&get_grid(), "addons", false);
      |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/gui/widgets/addon_list.cpp: In member function ‘void gui2::addon_list::select_addon(const std::string&)’:
src/gui/widgets/addon_list.cpp:359:30: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  359 |                 const label& name_label = find_widget<label>(row, "name", false);
      |                              ^~~~~~~~~~
src/gui/widgets/addon_list.cpp:359:61: note: the temporary was destroyed at the end of the full expression ‘gui2::find_widget<label>(((gui2::widget*)row), std::__cxx11::basic_string<char>(((const char*)"name"), std::allocator<char>()), 0)’
  359 |                 const label& name_label = find_widget<label>(row, "name", false);
      |                                           ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
src/actions/attack.cpp: In static member function ‘static battle_context battle_context::choose_attacker_weapon(nonempty_unit_const_ptr, nonempty_unit_const_ptr, const map_location&, const map_location&, double, const combatant*)’:
src/actions/attack.cpp:529:36: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  529 |                 const attack_type& att = attacker->attacks()[i];
      |                                    ^~~
src/actions/attack.cpp:529:63: note: the temporary was destroyed at the end of the full expression ‘attacker.utils::shared_reference<const unit>::operator->()->unit::attacks().boost::iterator_range<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > > >::boost::iterator_range_detail::iterator_range_base<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > >, boost::iterators::random_access_traversal_tag>.boost::iterator_range_detail::iterator_range_base<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > >, boost::iterators::random_access_traversal_tag>::operator[](((boost::iterator_range_detail::iterator_range_base<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > >, boost::iterators::random_access_traversal_tag>::difference_type)i))’
  529 |                 const attack_type& att = attacker->attacks()[i];
      |                                                               ^
src/actions/attack.cpp: In static member function ‘static battle_context battle_context::choose_defender_weapon(nonempty_unit_const_ptr, nonempty_unit_const_ptr, unsigned int, const map_location&, const map_location&, const combatant*)’:
src/actions/attack.cpp:580:28: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  580 |         const attack_type& att = attacker->attacks()[attacker_weapon];
      |                            ^~~
src/actions/attack.cpp:580:69: note: the temporary was destroyed at the end of the full expression ‘attacker.utils::shared_reference<const unit>::operator->()->unit::attacks().boost::iterator_range<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > > >::boost::iterator_range_detail::iterator_range_base<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > >, boost::iterators::random_access_traversal_tag>.boost::iterator_range_detail::iterator_range_base<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > >, boost::iterators::random_access_traversal_tag>::operator[](((boost::iterator_range_detail::iterator_range_base<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > >, boost::iterators::random_access_traversal_tag>::difference_type)attacker_weapon))’
  580 |         const attack_type& att = attacker->attacks()[attacker_weapon];
      |                                                                     ^
src/actions/attack.cpp:586:36: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  586 |                 const attack_type& def = defender->attacks()[i];
      |                                    ^~~
src/actions/attack.cpp:586:63: note: the temporary was destroyed at the end of the full expression ‘defender.utils::shared_reference<const unit>::operator->()->unit::attacks().boost::iterator_range<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > > >::boost::iterator_range_detail::iterator_range_base<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > >, boost::iterators::random_access_traversal_tag>.boost::iterator_range_detail::iterator_range_base<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > >, boost::iterators::random_access_traversal_tag>::operator[](((boost::iterator_range_detail::iterator_range_base<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > >, boost::iterators::random_access_traversal_tag>::difference_type)i))’
  586 |                 const attack_type& def = defender->attacks()[i];
      |                                                               ^
src/actions/attack.cpp:622:44: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  622 |                         const attack_type& def = defender->attacks()[choice.defender_stats_->attack_num];
      |                                            ^~~
src/actions/attack.cpp:622:104: note: the temporary was destroyed at the end of the full expression ‘defender.utils::shared_reference<const unit>::operator->()->unit::attacks().boost::iterator_range<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > > >::boost::iterator_range_detail::iterator_range_base<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > >, boost::iterators::random_access_traversal_tag>.boost::iterator_range_detail::iterator_range_base<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > >, boost::iterators::random_access_traversal_tag>::operator[](((boost::iterator_range_detail::iterator_range_base<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > >, boost::iterators::random_access_traversal_tag>::difference_type)choice.battle_context::defender_stats_.std::unique_ptr<battle_context_unit_stats>::operator->()->battle_context_unit_stats::attack_num))’
  622 |                         const attack_type& def = defender->attacks()[choice.defender_stats_->attack_num];
      |                                                                                                        ^
src/actions/attack.cpp:641:36: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  641 |                 const attack_type& def = defender->attacks()[choice.defender_stats_->attack_num];
      |                                    ^~~
src/actions/attack.cpp:641:96: note: the temporary was destroyed at the end of the full expression ‘defender.utils::shared_reference<const unit>::operator->()->unit::attacks().boost::iterator_range<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > > >::boost::iterator_range_detail::iterator_range_base<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > >, boost::iterators::random_access_traversal_tag>.boost::iterator_range_detail::iterator_range_base<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > >, boost::iterators::random_access_traversal_tag>::operator[](((boost::iterator_range_detail::iterator_range_base<boost::iterators::indirect_iterator<__gnu_cxx::__normal_iterator<const std::shared_ptr<attack_type>*, std::vector<std::shared_ptr<attack_type> > > >, boost::iterators::random_access_traversal_tag>::difference_type)choice.battle_context::defender_stats_.std::unique_ptr<battle_context_unit_stats>::operator->()->battle_context_unit_stats::attack_num))’
  641 |                 const attack_type& def = defender->attacks()[choice.defender_stats_->attack_num];
      |                                                                                                ^
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/stacked_widget.hpp:18,
                 from src/gui/widgets/stacked_widget.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/spinner.hpp:18,
                 from src/gui/widgets/spinner.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/transient_message.hpp:18,
                 from src/actions/undo.cpp:25:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/tab_container.hpp:18,
                 from src/gui/widgets/tab_container.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/toggle_button.hpp:18,
                 from src/gui/widgets/toggle_button.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/panel.hpp:18,
                 from src/gui/widgets/toggle_panel.hpp:18,
                 from src/gui/widgets/toggle_panel.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/text_box_base.hpp:19,
                 from src/gui/widgets/text_box.hpp:18,
                 from src/gui/widgets/text_box.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/scrollbar_container.hpp:18,
                 from src/gui/widgets/tree_view.hpp:18,
                 from src/gui/widgets/tree_view.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/scrollbar.hpp:18,
                 from src/gui/widgets/vertical_scrollbar.hpp:18,
                 from src/gui/widgets/vertical_scrollbar.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/widgets/window.hpp:26,
                 from src/gui/widgets/window_private.hpp:28,
                 from src/gui/widgets/window.cpp:23:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/network_transmission.hpp:19,
                 from src/addon/client.hpp:28,
                 from src/addon/manager_ui.cpp:19:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/unit_preview_pane.hpp:17,
                 from src/gui/widgets/unit_preview_pane.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/addon/addon_auth.hpp:17,
                 from src/addon/client.cpp:26:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/mp_report.hpp:17,
                 from src/chat_command_handler.cpp:20:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/transient_message.hpp:18,
                 from src/carryover_show_gold.cpp:22:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/editor/edit_label.hpp:18,
                 from src/editor/action/mouse/mouse_action_map_label.cpp:24:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/editor/choose_addon.hpp:17,
                 from src/editor/editor_main.cpp:22:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/edit_text.hpp:18,
                 from src/editor/controller/editor_controller.cpp:32:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/edit_text.hpp:18,
                 from src/editor/palette/location_palette.cpp:27:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/edit_text.hpp:18,
                 from src/editor/map/context_manager.cpp:36:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/message.hpp:18,
                 from src/editor/map/map_context.cpp:25:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/formula_debugger.hpp:18,
                 from src/formula/debugger.cpp:27:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/depcheck_confirm_change.hpp:18,
                 from src/game_initialization/depcheck.cpp:26:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/loading_screen.hpp:17,
                 from src/game_config_manager.cpp:28:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/campaign_difficulty.hpp:19,
                 from src/game_initialization/create_engine.cpp:23:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/auxiliary/iterator/walker_container.hpp:20,
                 from src/gui/auxiliary/iterator/walker_container.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/scrollbar_container.hpp:18,
                 from src/gui/auxiliary/iterator/walker_scrollbar_container.hpp:20,
                 from src/gui/auxiliary/iterator/walker_scrollbar_container.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/window_builder.hpp:18,
                 from src/gui/core/gui_definition.hpp:19,
                 from src/gui/core/gui_definition.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/widgets/window.hpp:26,
                 from src/gui/core/event/handler.cpp:26:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/canvas_private.hpp:17,
                 from src/gui/core/canvas.cpp:24:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/text_box_base.hpp:19,
                 from src/gui/core/event/distributor.cpp:23:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/campaign_difficulty.hpp:19,
                 from src/game_initialization/lobby_data.cpp:28:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/widget_definition.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/window_builder.hpp:18,
                 from src/gui/core/window_builder/instance.hpp:18,
                 from src/gui/core/window_builder/instance.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/window_builder.hpp:18,
                 from src/gui/core/window_builder.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/core/static_registry.cpp:16:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/campaign_selection.hpp:18,
                 from src/game_initialization/singleplayer.cpp:22:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/message.hpp:18,
                 from src/game_initialization/playcampaign.cpp:31:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/scrollbar_container.hpp:18,
                 from src/gui/core/window_builder/helper.hpp:18,
                 from src/gui/core/window_builder/helper.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/addon/license_prompt.hpp:18,
                 from src/gui/dialogs/addon/license_prompt.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/addon/connect.hpp:18,
                 from src/gui/dialogs/addon/connect.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/loading_screen.hpp:17,
                 from src/game_initialization/multiplayer.cpp:26:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/addon/addon_auth.hpp:17,
                 from src/gui/dialogs/addon/addon_auth.cpp:19:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/addon/install_dependencies.hpp:19,
                 from src/gui/dialogs/addon/install_dependencies.cpp:16:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/language_selection.hpp:18,
                 from src/game_launcher.cpp:33:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/achievements_dialog.hpp:16,
                 from src/gui/dialogs/achievements_dialog.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/loading_screen.hpp:17,
                 from src/game_state.cpp:34:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/attack_predictions.hpp:19,
                 from src/gui/dialogs/attack_predictions.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/addon/uninstall_list.hpp:18,
                 from src/gui/dialogs/addon/uninstall_list.cpp:16:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/campaign_difficulty.hpp:19,
                 from src/gui/dialogs/campaign_difficulty.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/widgets/window.hpp:26,
                 from src/gui/dialogs/modeless_dialog.hpp:18,
                 from src/gui/dialogs/debug_clock.hpp:18,
                 from src/gui/dialogs/debug_clock.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/network_transmission.hpp:19,
                 from src/addon/client.hpp:28,
                 from src/gui/dialogs/addon/manager.hpp:18,
                 from src/gui/dialogs/addon/manager.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/depcheck_confirm_change.hpp:18,
                 from src/gui/dialogs/depcheck_confirm_change.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/campaign_selection.hpp:18,
                 from src/gui/dialogs/campaign_selection.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/editor/edit_label.hpp:18,
                 from src/gui/dialogs/editor/edit_label.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/edit_text.hpp:18,
                 from src/gui/dialogs/edit_text.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/edit_label.hpp:18,
                 from src/gui/dialogs/edit_label.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/chat_log.hpp:18,
                 from src/gui/dialogs/chat_log.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/core_selection.hpp:18,
                 from src/gui/dialogs/core_selection.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/editor/edit_pbl_translation.hpp:17,
                 from src/gui/dialogs/editor/edit_pbl_translation.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
src/gui/dialogs/addon/uninstall_list.cpp: In member function ‘virtual void gui2::dialogs::addon_uninstall_list::post_show(gui2::window&)’:
src/gui/dialogs/addon/uninstall_list.cpp:57:24: warning: possibly dangling reference to a temporary [-Wdangling-reference]
   57 |         const listbox& list = find_widget<listbox>(&window, "addons_list", false);
      |                        ^~~~
src/gui/dialogs/addon/uninstall_list.cpp:57:51: note: the temporary was destroyed at the end of the full expression ‘gui2::find_widget<listbox>((&(& window)->gui2::window::gui2::panel.gui2::panel::gui2::container_base.gui2::container_base::gui2::styled_widget.gui2::styled_widget::gui2::widget), std::__cxx11::basic_string<char>(((const char*)"addons_list"), std::allocator<char>()), 0)’
   57 |         const listbox& list = find_widget<listbox>(&window, "addons_list", false);
      |                               ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/gui/dialogs/addon/uninstall_list.cpp:68:38: warning: possibly dangling reference to a temporary [-Wdangling-reference]
   68 |                 const toggle_button& checkbox
      |                                      ^~~~~~~~
src/gui/dialogs/addon/uninstall_list.cpp:69:67: note: the temporary was destroyed at the end of the full expression ‘gui2::find_widget<const toggle_button>(((const gui2::widget*)g), std::__cxx11::basic_string<char>(((const char*)"checkbox"), std::allocator<char>()), 0)’
   69 |                                 = find_widget<const toggle_button>(g, "checkbox", false);
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/drop_down_menu.hpp:18,
                 from src/gui/dialogs/drop_down_menu.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/editor/choose_addon.hpp:17,
                 from src/gui/dialogs/editor/choose_addon.cpp:15:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/depcheck_select_new.hpp:18,
                 from src/gui/dialogs/depcheck_select_new.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/editor/custom_tod.hpp:18,
                 from src/gui/dialogs/editor/custom_tod.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/editor/edit_scenario.hpp:18,
                 from src/gui/dialogs/editor/edit_scenario.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/editor/new_map.hpp:18,
                 from src/gui/dialogs/editor/new_map.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
src/gui/dialogs/drop_down_menu.cpp: In member function ‘boost::dynamic_bitset<> gui2::dialogs::drop_down_menu::get_toggle_states() const’:
src/gui/dialogs/drop_down_menu.cpp:250:24: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  250 |         const listbox& list = find_widget<const listbox>(get_window(), "list", true);
      |                        ^~~~
src/gui/dialogs/drop_down_menu.cpp:250:57: note: the temporary was destroyed at the end of the full expression ‘gui2::find_widget<const listbox>(((const gui2::widget*)((const gui2::dialogs::drop_down_menu*)this)->gui2::dialogs::drop_down_menu::gui2::dialogs::modal_dialog.gui2::dialogs::modal_dialog::get_window()), std::__cxx11::basic_string<char>(((const char*)"list"), std::allocator<char>()), 1)’
  250 |         const listbox& list = find_widget<const listbox>(get_window(), "list", true);
      |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/editor/resize_map.hpp:18,
                 from src/gui/dialogs/editor/resize_map.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/editor/generator_settings.hpp:17,
                 from src/gui/dialogs/editor/generator_settings.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/editor/edit_pbl.hpp:17,
                 from src/gui/dialogs/editor/edit_pbl.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/editor/tod_new_schedule.hpp:17,
                 from src/gui/dialogs/editor/tod_new_schedule.cpp:19:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/editor/generate_map.hpp:18,
                 from src/gui/dialogs/editor/generate_map.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/editor/edit_unit.hpp:19,
                 from src/gui/dialogs/editor/edit_unit.cpp:20:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/widgets/window.hpp:26,
                 from src/gui/dialogs/modeless_dialog.hpp:18,
                 from src/gui/dialogs/file_progress.hpp:18,
                 from src/gui/dialogs/file_progress.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/end_credits.hpp:17,
                 from src/gui/dialogs/end_credits.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/formula_debugger.hpp:18,
                 from src/gui/dialogs/formula_debugger.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/folder_create.hpp:18,
                 from src/gui/dialogs/folder_create.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
src/gui/dialogs/addon/manager.cpp: In member function ‘boost::dynamic_bitset<> gui2::dialogs::addon_manager::get_name_filter_visibility() const’:
src/gui/dialogs/addon/manager.cpp:621:25: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  621 |         const text_box& name_filter = find_widget<const text_box>(get_window(), "filter", false);
      |                         ^~~~~~~~~~~
src/gui/dialogs/addon/manager.cpp:621:66: note: the temporary was destroyed at the end of the full expression ‘gui2::find_widget<const text_box>(((const gui2::widget*)((const gui2::dialogs::addon_manager*)this)->gui2::dialogs::addon_manager::gui2::dialogs::modal_dialog.gui2::dialogs::modal_dialog::get_window()), std::__cxx11::basic_string<char>(((const char*)"filter"), std::allocator<char>()), 0)’
  621 |         const text_box& name_filter = find_widget<const text_box>(get_window(), "filter", false);
      |                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/gui/dialogs/addon/manager.cpp: In member function ‘boost::dynamic_bitset<> gui2::dialogs::addon_manager::get_status_filter_visibility() const’:
src/gui/dialogs/addon/manager.cpp:645:28: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  645 |         const menu_button& status_filter = find_widget<const menu_button>(get_window(), "install_status_filter", false);
      |                            ^~~~~~~~~~~~~
src/gui/dialogs/addon/manager.cpp:645:74: note: the temporary was destroyed at the end of the full expression ‘gui2::find_widget<const menu_button>(((const gui2::widget*)((const gui2::dialogs::addon_manager*)this)->gui2::dialogs::addon_manager::gui2::dialogs::modal_dialog.gui2::dialogs::modal_dialog::get_window()), std::__cxx11::basic_string<char>(((const char*)"install_status_filter"), std::allocator<char>()), 0)’
  645 |         const menu_button& status_filter = find_widget<const menu_button>(get_window(), "install_status_filter", false);
      |                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/gui/dialogs/addon/manager.cpp: In member function ‘boost::dynamic_bitset<> gui2::dialogs::addon_manager::get_tag_filter_visibility() const’:
src/gui/dialogs/addon/manager.cpp:666:21: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  666 |         const auto& tag_filter = find_widget<const multimenu_button>(get_window(), "tag_filter", false);
      |                     ^~~~~~~~~~
src/gui/dialogs/addon/manager.cpp:666:69: note: the temporary was destroyed at the end of the full expression ‘gui2::find_widget<const multimenu_button>(((const gui2::widget*)((const gui2::dialogs::addon_manager*)this)->gui2::dialogs::addon_manager::gui2::dialogs::modal_dialog.gui2::dialogs::modal_dialog::get_window()), std::__cxx11::basic_string<char>(((const char*)"tag_filter"), std::allocator<char>()), 0)’
  666 |         const auto& tag_filter = find_widget<const multimenu_button>(get_window(), "tag_filter", false);
      |                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/gui/dialogs/addon/manager.cpp: In member function ‘boost::dynamic_bitset<> gui2::dialogs::addon_manager::get_type_filter_visibility() const’:
src/gui/dialogs/addon/manager.cpp:698:33: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  698 |         const multimenu_button& type_filter = find_widget<const multimenu_button>(get_window(), "type_filter", false);
      |                                 ^~~~~~~~~~~
src/gui/dialogs/addon/manager.cpp:698:82: note: the temporary was destroyed at the end of the full expression ‘gui2::find_widget<const multimenu_button>(((const gui2::widget*)((const gui2::dialogs::addon_manager*)this)->gui2::dialogs::addon_manager::gui2::dialogs::modal_dialog.gui2::dialogs::modal_dialog::get_window()), std::__cxx11::basic_string<char>(((const char*)"type_filter"), std::allocator<char>()), 0)’
  698 |         const multimenu_button& type_filter = find_widget<const multimenu_button>(get_window(), "type_filter", false);
      |                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/gui/dialogs/addon/manager.cpp: In member function ‘boost::dynamic_bitset<> gui2::dialogs::addon_manager::get_lang_filter_visibility() const’:
src/gui/dialogs/addon/manager.cpp:723:33: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  723 |         const multimenu_button& lang_filter = find_widget<const multimenu_button>(get_window(), "language_filter", false);
      |                                 ^~~~~~~~~~~
src/gui/dialogs/addon/manager.cpp:723:82: note: the temporary was destroyed at the end of the full expression ‘gui2::find_widget<const multimenu_button>(((const gui2::widget*)((const gui2::dialogs::addon_manager*)this)->gui2::dialogs::addon_manager::gui2::dialogs::modal_dialog.gui2::dialogs::modal_dialog::get_window()), std::__cxx11::basic_string<char>(((const char*)"language_filter"), std::allocator<char>()), 0)’
  723 |         const multimenu_button& lang_filter = find_widget<const multimenu_button>(get_window(), "language_filter", false);
      |                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/gui/dialogs/addon/manager.cpp: In member function ‘void gui2::dialogs::addon_manager::order_addons()’:
src/gui/dialogs/addon/manager.cpp:782:28: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  782 |         const menu_button& order_menu = find_widget<const menu_button>(get_window(), "order_dropdown", false);
      |                            ^~~~~~~~~~
src/gui/dialogs/addon/manager.cpp:782:71: note: the temporary was destroyed at the end of the full expression ‘gui2::find_widget<const menu_button>(((utils::const_clone_ptr<gui2::widget, const gui2::menu_button>)((gui2::widget*)((gui2::dialogs::addon_manager*)this)->gui2::dialogs::addon_manager::gui2::dialogs::modal_dialog.gui2::dialogs::modal_dialog::get_window())), std::__cxx11::basic_string<char>(((const char*)"order_dropdown"), std::allocator<char>()), 0)’
  782 |         const menu_button& order_menu = find_widget<const menu_button>(get_window(), "order_dropdown", false);
      |                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/game_cache_options.hpp:18,
                 from src/gui/dialogs/game_cache_options.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/game_save.hpp:18,
                 from src/gui/dialogs/game_save.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/file_dialog.hpp:18,
                 from src/gui/dialogs/file_dialog.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/game_delete.hpp:18,
                 from src/gui/dialogs/game_delete.cpp:16:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/editor/edit_side.hpp:19,
                 from src/gui/dialogs/editor/edit_side.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/game_load.hpp:18,
                 from src/gui/dialogs/game_load.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/hotkey_bind.hpp:17,
                 from src/gui/dialogs/hotkey_bind.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/gamestate_inspector.hpp:18,
                 from src/gui/dialogs/gamestate_inspector.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/game_version_dialog.hpp:18,
                 from src/gui/dialogs/game_version_dialog.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/message.hpp:18,
                 from src/gui/dialogs/message.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/loading_screen.hpp:17,
                 from src/gui/dialogs/loading_screen.cpp:22:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/help_browser.hpp:18,
                 from src/gui/dialogs/help_browser.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/widgets/window.hpp:26,
                 from src/gui/dialogs/modeless_dialog.hpp:18,
                 from src/gui/dialogs/modeless_dialog.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/label_settings.hpp:17,
                 from src/gui/dialogs/label_settings.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/game_stats.hpp:19,
                 from src/gui/dialogs/game_stats.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/language_selection.hpp:18,
                 from src/gui/dialogs/language_selection.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/modal_dialog.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/lua_interpreter.hpp:18,
                 from src/gui/dialogs/lua_interpreter.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/log_settings.hpp:17,
                 from src/gui/dialogs/log_settings.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/migrate_version_selection.hpp:17,
                 from src/gui/dialogs/migrate_version_selection.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/mp_login.hpp:18,
                 from src/gui/dialogs/multiplayer/mp_login.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/faction_select.hpp:18,
                 from src/gui/dialogs/multiplayer/faction_select.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/label.hpp:18,
                 from src/gui/dialogs/multiplayer/lobby_player_list_helper.cpp:22:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/mp_join_game_password_prompt.hpp:18,
                 from src/gui/dialogs/multiplayer/mp_join_game_password_prompt.cpp:16:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/mp_alerts_options.hpp:18,
                 from src/gui/dialogs/multiplayer/mp_alerts_options.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/mp_connect.hpp:18,
                 from src/gui/dialogs/multiplayer/mp_connect.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/mp_change_control.hpp:18,
                 from src/gui/dialogs/multiplayer/mp_change_control.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/mp_host_game_prompt.hpp:19,
                 from src/gui/dialogs/multiplayer/mp_host_game_prompt.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/mp_create_game.hpp:18,
                 from src/gui/dialogs/multiplayer/mp_create_game.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/mp_report.hpp:17,
                 from src/gui/dialogs/multiplayer/mp_report.cpp:19:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/mp_method_selection.hpp:18,
                 from src/gui/dialogs/multiplayer/mp_method_selection.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/synced_choice_wait.hpp:18,
                 from src/gui/dialogs/multiplayer/synced_choice_wait.cpp:16:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/match_history.hpp:17,
                 from src/gui/dialogs/multiplayer/match_history.cpp:15:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/lobby.hpp:20,
                 from src/gui/dialogs/multiplayer/lobby.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/outro.hpp:18,
                 from src/gui/dialogs/outro.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
src/gui/dialogs/multiplayer/mp_report.cpp: In member function ‘virtual void gui2::dialogs::mp_report::post_show(gui2::window&)’:
src/gui/dialogs/multiplayer/mp_report.cpp:69:33: warning: possibly dangling reference to a temporary [-Wdangling-reference]
   69 |                 const text_box& reportee = find_widget<const text_box>(&window, "reportee", false);
      |                                 ^~~~~~~~
src/gui/dialogs/multiplayer/mp_report.cpp:69:71: note: the temporary was destroyed at the end of the full expression ‘gui2::find_widget<const text_box>(((utils::const_clone_ptr<gui2::widget, const gui2::text_box>)(&(& window)->gui2::window::gui2::panel.gui2::panel::gui2::container_base.gui2::container_base::gui2::styled_widget.gui2::styled_widget::gui2::widget)), std::__cxx11::basic_string<char>(((const char*)"reportee"), std::allocator<char>()), 0)’
   69 |                 const text_box& reportee = find_widget<const text_box>(&window, "reportee", false);
      |                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/gui/dialogs/multiplayer/mp_report.cpp:70:33: warning: possibly dangling reference to a temporary [-Wdangling-reference]
   70 |                 const text_box& report_reason = find_widget<const text_box>(&window, "report_reason", false);
      |                                 ^~~~~~~~~~~~~
src/gui/dialogs/multiplayer/mp_report.cpp:70:76: note: the temporary was destroyed at the end of the full expression ‘gui2::find_widget<const text_box>(((utils::const_clone_ptr<gui2::widget, const gui2::text_box>)(&(& window)->gui2::window::gui2::panel.gui2::panel::gui2::container_base.gui2::container_base::gui2::styled_widget.gui2::styled_widget::gui2::widget)), std::__cxx11::basic_string<char>(((const char*)"report_reason"), std::allocator<char>()), 0)’
   70 |                 const text_box& report_reason = find_widget<const text_box>(&window, "report_reason", false);
      |                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/gui/dialogs/multiplayer/mp_report.cpp:71:36: warning: possibly dangling reference to a temporary [-Wdangling-reference]
   71 |                 const menu_button& occurrence_location = find_widget<const menu_button>(&window, "occurrence_location", false);
      |                                    ^~~~~~~~~~~~~~~~~~~
src/gui/dialogs/multiplayer/mp_report.cpp:71:88: note: the temporary was destroyed at the end of the full expression ‘gui2::find_widget<const menu_button>(((utils::const_clone_ptr<gui2::widget, const gui2::menu_button>)(&(& window)->gui2::window::gui2::panel.gui2::panel::gui2::container_base.gui2::container_base::gui2::styled_widget.gui2::styled_widget::gui2::widget)), std::__cxx11::basic_string<char>(((const char*)"occurrence_location"), std::allocator<char>()), 0)’
   71 |                 const menu_button& occurrence_location = find_widget<const menu_button>(&window, "occurrence_location", false);
      |                                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/prompt.hpp:17,
                 from src/gui/dialogs/prompt.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/player_info.hpp:18,
                 from src/gui/dialogs/multiplayer/player_info.cpp:16:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/scrollbar_container.hpp:18,
                 from src/gui/widgets/listbox.hpp:19,
                 from src/gui/dialogs/multiplayer/player_list_helper.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/mp_join_game.hpp:17,
                 from src/gui/dialogs/multiplayer/mp_join_game.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/screenshot_notification.hpp:18,
                 from src/gui/dialogs/screenshot_notification.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/preferences_dialog.hpp:18,
                 from src/gui/dialogs/preferences_dialog.cpp:19:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/select_orb_colors.hpp:17,
                 from src/gui/dialogs/select_orb_colors.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/sp_options_configure.hpp:17,
                 from src/gui/dialogs/sp_options_configure.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/network_transmission.hpp:19,
                 from src/gui/dialogs/network_transmission.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/server_info_dialog.hpp:17,
                 from src/gui/dialogs/server_info_dialog.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/button.hpp:18,
                 from src/gui/dialogs/multiplayer/mp_options_helper.cpp:21:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/simple_item_selector.hpp:18,
                 from src/gui/dialogs/simple_item_selector.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/mp_staging.hpp:18,
                 from src/gui/dialogs/multiplayer/mp_staging.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/statistics_dialog.hpp:17,
                 from src/gui/dialogs/statistics_dialog.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/surrender_quit.hpp:18,
                 from src/gui/dialogs/surrender_quit.cpp:16:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
src/gui/dialogs/preferences_dialog.cpp: In member function ‘void gui2::dialogs::preferences_dialog::hotkey_filter_callback()’:
src/gui/dialogs/preferences_dialog.cpp:946:33: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  946 |         const multimenu_button& hotkey_menu = find_widget<const multimenu_button>(this, "hotkey_category_menu", false);
      |                                 ^~~~~~~~~~~
src/gui/dialogs/preferences_dialog.cpp:946:82: note: the temporary was destroyed at the end of the full expression ‘gui2::find_widget<const multimenu_button>(((utils::const_clone_ptr<gui2::widget, const gui2::multimenu_button>)(&((gui2::dialogs::preferences_dialog*)this)->gui2::dialogs::preferences_dialog::gui2::dialogs::modal_dialog.gui2::dialogs::modal_dialog::gui2::window.gui2::window::gui2::panel.gui2::panel::gui2::container_base.gui2::container_base::gui2::styled_widget.gui2::styled_widget::gui2::widget)), std::__cxx11::basic_string<char>(((const char*)"hotkey_category_menu"), std::allocator<char>()), 0)’
  946 |         const multimenu_button& hotkey_menu = find_widget<const multimenu_button>(this, "hotkey_category_menu", false);
      |                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/gui/dialogs/preferences_dialog.cpp:947:25: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  947 |         const text_box& name_filter = find_widget<const text_box>(this, "filter", false);
      |                         ^~~~~~~~~~~
src/gui/dialogs/preferences_dialog.cpp:947:66: note: the temporary was destroyed at the end of the full expression ‘gui2::find_widget<const text_box>(((utils::const_clone_ptr<gui2::widget, const gui2::text_box>)(&((gui2::dialogs::preferences_dialog*)this)->gui2::dialogs::preferences_dialog::gui2::dialogs::modal_dialog.gui2::dialogs::modal_dialog::gui2::window.gui2::window::gui2::panel.gui2::panel::gui2::container_base.gui2::container_base::gui2::styled_widget.gui2::styled_widget::gui2::widget)), std::__cxx11::basic_string<char>(((const char*)"filter"), std::allocator<char>()), 0)’
  947 |         const text_box& name_filter = find_widget<const text_box>(this, "filter", false);
      |                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/story_viewer.hpp:18,
                 from src/gui/dialogs/story_viewer.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/window_builder.hpp:18,
                 from src/gui/core/gui_definition.hpp:19,
                 from src/gui/dialogs/tooltip.cpp:21:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/transient_message.hpp:18,
                 from src/gui/dialogs/transient_message.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/wml_error.hpp:18,
                 from src/gui/dialogs/wml_error.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/theme_list.hpp:18,
                 from src/gui/dialogs/theme_list.cpp:16:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/terrain_layers.hpp:17,
                 from src/gui/dialogs/terrain_layers.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/unit_attack.hpp:19,
                 from src/gui/dialogs/unit_attack.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/title_screen.hpp:18,
                 from src/gui/dialogs/title_screen.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/unit_advance.hpp:17,
                 from src/gui/dialogs/unit_advance.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/unit_create.hpp:18,
                 from src/gui/dialogs/unit_create.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/window_builder.hpp:18,
                 from src/gui/widgets/pane.hpp:19,
                 from src/gui/widgets/pane.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/unit_list.hpp:18,
                 from src/gui/dialogs/unit_list.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/unit_recall.hpp:17,
                 from src/gui/dialogs/unit_recall.cpp:17:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/unit_recruit.hpp:17,
                 from src/gui/dialogs/unit_recruit.cpp:19:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/wml_message.hpp:18,
                 from src/gui/dialogs/wml_message.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/container_base.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/grid.cpp:24:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/scrollbar.hpp:18,
                 from src/gui/widgets/scrollbar.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/scrollbar_container.hpp:18,
                 from src/gui/widgets/scroll_text.hpp:18,
                 from src/gui/widgets/scroll_text.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/slider_base.hpp:18,
                 from src/gui/widgets/slider_base.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/toggle_button.hpp:18,
                 from src/gui/widgets/generator_private.hpp:23,
                 from src/gui/widgets/generator.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/styled_widget.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/scrollbar_container.hpp:18,
                 from src/gui/widgets/scrollbar_container_private.hpp:18,
                 from src/gui/widgets/scrollbar_container.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/window_builder.hpp:18,
                 from src/gui/core/gui_definition.hpp:19,
                 from src/gui/gui.cpp:24:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/text_box_base.hpp:19,
                 from src/gui/widgets/text_box_base.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
src/gui/dialogs/unit_advance.cpp: In member function ‘virtual void gui2::dialogs::unit_advance::pre_show(gui2::window&)’:
src/gui/dialogs/unit_advance.cpp:66:37: warning: possibly dangling reference to a temporary [-Wdangling-reference]
   66 |                         const auto& back = sample.get_modifications().child_range("advancement").back();
      |                                     ^~~~
src/gui/dialogs/unit_advance.cpp:66:102: note: the temporary was destroyed at the end of the full expression ‘(&(& sample)->unit::get_modifications())->config::child_range(std::basic_string_view<char>(((const char*)"advancement"))).boost::iterator_range<config::const_child_iterator>::boost::iterator_range_detail::iterator_range_base<config::const_child_iterator, boost::iterators::random_access_traversal_tag>.boost::iterator_range_detail::iterator_range_base<config::const_child_iterator, boost::iterators::random_access_traversal_tag>::boost::iterator_range_detail::iterator_range_base<config::const_child_iterator, boost::iterators::bidirectional_traversal_tag>.boost::iterator_range_detail::iterator_range_base<config::const_child_iterator, boost::iterators::bidirectional_traversal_tag>::back()’
   66 |                         const auto& back = sample.get_modifications().child_range("advancement").back();
      |                                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
In file included from src/gui/core/window_builder.hpp:18,
                 from src/gui/widgets/viewport.hpp:18,
                 from src/gui/widgets/viewport.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/widgets/window.hpp:26,
                 from src/gui/widgets/widget.cpp:22:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/container_base.hpp:19,
                 from src/gui/widgets/panel.hpp:18,
                 from src/gui/widgets/toggle_panel.hpp:18,
                 from src/gui/widgets/tree_view_node.cpp:24:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/message.hpp:18,
                 from src/network_download_file.cpp:19:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
src/help/help_impl.cpp: In function ‘const help::section* help::find_section(const section&, const std::string&)’:
src/help/help_impl.cpp:1315:21: warning: possibly dangling reference to a temporary [-Wdangling-reference]
 1315 |         const auto &sit =
      |                     ^~~
src/help/help_impl.cpp:1316:29: note: the temporary was destroyed at the end of the full expression ‘std::find_if<_List_const_iterator<help::section>, help::has_id>(sec.help::section::sections.std::__cxx11::list<help::section>::begin(), sec.help::section::sections.std::__cxx11::list<help::section>::end(), help::has_id((* & id)))’
 1316 |                 std::find_if(sec.sections.begin(), sec.sections.end(), has_id(id));
      |                 ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/network_download_file.cpp:22:
src/network_download_file.cpp: In function ‘void network::download(const std::string&, const std::string&)’:
src/network_download_file.cpp:56:36: warning: ‘CURLOPT_PROTOCOLS’ is deprecated: since 7.85.0. Use CURLOPT_PROTOCOLS_STR [-Wdeprecated-declarations]
   56 |             curl_easy_setopt(curl, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS);
      |                                    ^~~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:1749:3: note: declared here
 1749 |   CURLOPTDEPRECATED(CURLOPT_PROTOCOLS, CURLOPTTYPE_LONG, 181,
      |   ^~~~~~~~~~~~~~~~~
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/transient_message.hpp:18,
                 from src/mouse_events.cpp:26:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/message.hpp:18,
                 from src/hotkey/hotkey_handler_sp.cpp:21:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/file_dialog.hpp:18,
                 from src/preferences/display.cpp:31:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/chat_log.hpp:18,
                 from src/menu_events.cpp:41:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
src/replay_controller.cpp: In member function ‘void replay_controller::add_replay_theme()’:
src/replay_controller.cpp:89:23: warning: possibly dangling reference to a temporary [-Wdangling-reference]
   89 |         const config& theme_cfg = theme::get_theme_config(controller_.theme());
      |                       ^~~~~~~~~
src/replay_controller.cpp:89:58: note: the temporary was destroyed at the end of the full expression ‘theme::get_theme_config(play_controller::theme() const())’
   89 |         const config& theme_cfg = theme::get_theme_config(controller_.theme());
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from src/gui/core/window_builder.hpp:18,
                 from src/gui/core/gui_definition.hpp:19,
                 from src/scripting/lua_kernel_base.cpp:20:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/window_builder.hpp:18,
                 from src/gui/core/gui_definition.hpp:19,
                 from src/scripting/lua_gui2.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/loading_screen.hpp:17,
                 from src/play_controller.cpp:37:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/story_viewer.hpp:18,
                 from src/playsingle_controller.cpp:33:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/loading_screen.hpp:17,
                 from src/playmp_controller.cpp:27:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/campaign_difficulty.hpp:19,
                 from src/savegame.cpp:28:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/scripting/lua_widget_attributes.cpp:18:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/window_builder.hpp:18,
                 from src/scripting/lua_widget_methods.cpp:19:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
src/units/abilities.cpp: In function ‘bool {anonymous}::add_ability_tooltip(const config::any_child&, unit_race::GENDER, std::vector<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, t_string, t_string, t_string> >&, bool)’:
src/units/abilities.cpp:304:56: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  304 |                         const config::attribute_value& inactive_value =
      |                                                        ^~~~~~~~~~~~~~
src/units/abilities.cpp:305:45: note: the temporary was destroyed at the end of the full expression ‘gender_value((*(const config*)(& ab.config::any_child::cfg)), gender, std::__cxx11::basic_string<char>(((const char*)"name_inactive"), std::allocator<char>()), std::__cxx11::basic_string<char>(((const char*)"female_name_inactive"), std::allocator<char>()), std::__cxx11::basic_string<char>(((const char*)"name_inactive"), std::allocator<char>()))’
  305 |                                 gender_value(ab.cfg, gender, "name_inactive",
      |                                 ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  306 |                                                 "female_name_inactive", "name_inactive");
      |                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/multiplayer/synced_choice_wait.hpp:18,
                 from src/synced_user_choice.cpp:26:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/units/types.cpp:32:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/loading_screen.hpp:17,
                 from src/wesnothd_connection.cpp:21:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/simple_item_selector.hpp:18,
                 from src/whiteboard/manager.cpp:40:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/editor/generator_settings.hpp:17,
                 from src/generators/default_map_generator.cpp:20:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/achievements_dialog.hpp:16,
                 from src/hotkey/command_executor.cpp:19:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
src/theme.cpp: In constructor ‘theme::menu::menu(std::size_t, std::size_t, const config&)’:
src/theme.cpp:522:21: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  522 |         const auto& cmd = hotkey::get_hotkey_command(items_[0]["id"]);
      |                     ^~~
src/theme.cpp:522:53: note: the temporary was destroyed at the end of the full expression ‘hotkey::get_hotkey_command(config_attribute_value::operator std::string() const())’
  522 |         const auto& cmd = hotkey::get_hotkey_command(items_[0]["id"]);
      |                           ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
src/picture.cpp: In function ‘void image::precache_file_existence(const std::string&)’:
src/picture.cpp:907:41: warning: possibly dangling reference to a temporary [-Wdangling-reference]
  907 |         const std::vector<std::string>& paths = filesystem::get_binary_paths("images");
      |                                         ^~~~~
src/picture.cpp:907:77: note: the temporary was destroyed at the end of the full expression ‘filesystem::get_binary_paths(std::__cxx11::basic_string<char>(((const char*)"images"), std::allocator<char>()))’
  907 |         const std::vector<std::string>& paths = filesystem::get_binary_paths("images");
      |                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/message.hpp:18,
                 from src/wml_exception.cpp:26:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/loading_screen.hpp:17,
                 from src/terrain/builder.cpp:23:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/surrender_quit.hpp:18,
                 from src/quit_confirmation.cpp:21:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/label.hpp:18,
                 from src/tests/gui/visitor.cpp:22:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/label.hpp:18,
                 from src/tests/gui/iterator.cpp:23:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/widgets/styled_widget.hpp:20,
                 from src/gui/widgets/label.hpp:18,
                 from src/tests/gui/fire_event.cpp:21:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/network_transmission.hpp:19,
                 from src/addon/client.hpp:28,
                 from src/tests/gui/test_gui2.cpp:19:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’
In file included from src/gui/core/widget_definition.hpp:22,
                 from src/gui/core/static_registry.hpp:18,
                 from src/gui/dialogs/modal_dialog.hpp:19,
                 from src/gui/dialogs/loading_screen.hpp:17,
                 from src/wesnoth.cpp:33:
src/gui/auxiliary/typed_formula.hpp:61:34: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
   61 |         explicit typed_formula<T>(const std::string& str, const T value = T());
      |                                  ^
src/gui/auxiliary/typed_formula.hpp:61:34: note: remove the ‘< >’

from wesnoth.

cooljeanius avatar cooljeanius commented on September 25, 2024

What's your compiler's version info?

from wesnoth.

kloczek avatar kloczek commented on September 25, 2024

gcc 14.1.0

from wesnoth.

cooljeanius avatar cooljeanius commented on September 25, 2024

gcc 14.1.0

Thanks, let's look at the GCC 14 release notes: https://gcc.gnu.org/gcc-14/changes.html
Some key lines to note:

  • "The DR 2237 code no longer gives an error, it emits a -Wtemplate-id-cdtor warning instead"
  • "-Wdangling-reference false positives have been reduced. The warning does not warn about std::span-like classes; there is also a new attribute gnu::no_dangling to suppress the warning."

I thought there was also something about changes to -Wreturn-type too, but I'm not seeing it at the moment...

from wesnoth.

stevecotton avatar stevecotton commented on September 25, 2024

Thanks for logging the issue, and it's definitely a priority to clean up that logspam before it hides a real issue. However the log doesn't seem to match the stats, as there's more than 7 -Wdangling-references and no -Wreturn-type mentions in the log - this is good, because I'm expecting many calls of find_widget to trigger false positives.

For the functions that trigger -Wdangling-reference, there's a list of functions that I checked in #8349.

from wesnoth.

stevecotton avatar stevecotton commented on September 25, 2024

Removed "Good first issue", because it's already in progress.

from wesnoth.

Wedge009 avatar Wedge009 commented on September 25, 2024

Though it looks like 24.04 only has gcc 13?

Seems so: https://packages.ubuntu.com/search?keywords=gcc

Looks like steve is on it, though.

from wesnoth.

stevecotton avatar stevecotton commented on September 25, 2024

I'm using Debian's testing and unstable distros, which have gcc 14.

from wesnoth.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.