[3dprinter-general] Bug#1056897: FTBFS: Plater.cpp:5313: error: call of overloaded ‘load_files?=(<brace-enclosed initializer list>)=?UTF-8?Q?’ is ambiguous
Gregor Riepl
onitake at gmail.com
Sun Nov 26 10:18:36 GMT 2023
Source: slic3r-prusa
Version: 2.6.1+dfsg-4
Severity: serious
Tags: ftbfs patch
Justification: fails to build from source (but built successfully in the past)
X-Debbugs-Cc: onitake at gmail.com
Hi,
During a recent upload, PrusaSlicer failed to build due to incompatible chanes in wxWidgets 3.2.
These changes include support for initializer lists, which clashes with some overloads in the
PrusaSlicer source code. The errors are as follows:
src/slic3r/GUI/Plater.cpp: In member function ‘void Slic3r::GUI::Plater::load_project(const wxString&)’:
src/slic3r/GUI/Plater.cpp:5313:21: error: call of overloaded ‘load_files(<brace-enclosed initializer list>)’ is ambiguous
5313 | if (! load_files({ into_path(filename) }).empty()) {
| ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/slic3r/GUI/Plater.cpp:20:
src/slic3r/GUI/Plater.hpp:193:25: note: candidate: ‘std::vector<long unsigned int> Slic3r::GUI::Plater::load_files(const std::vector<boost::filesystem::path>&, bool, bool, bool)’
193 | std::vector<size_t> load_files(const std::vector<boost::filesystem::path>& input_files, bool load_model = true, bool load_config = true, bool imperial_units = false);
| ^~~~~~~~~~
src/slic3r/GUI/Plater.hpp:197:10: note: candidate: ‘bool Slic3r::GUI::Plater::load_files(const wxArrayString&, bool)’
197 | bool load_files(const wxArrayString& filenames, bool delete_after_load = false);
| ^~~~~~~~~~
and
src/slic3r/GUI/PhysicalPrinterDialog.cpp: In member function 'void Slic3r::GUI::PhysicalPrinterDialog::build_printhost_settings(Slic3r::GUI::ConfigOptionsGroup*)':
src/slic3r/GUI/PhysicalPrinterDialog.cpp:465:27: error: call of overloaded 'set_values(<brace-enclosed initializer list>)' is ambiguous
465 | choice->set_values({ m_config->opt_string("printhost_port") });
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from src/slic3r/GUI/ConfigManipulation.hpp:16,
from src/slic3r/GUI/Tab.hpp:50,
from src/slic3r/GUI/PhysicalPrinterDialog.cpp:28:
src/slic3r/GUI/Field.hpp:381:33: note: candidate: 'void Slic3r::GUI::Choice::set_values(const std::vector<std::__cxx11::basic_string<char> >&)'
381 | void set_values(const std::vector<std::string> &values);
| ^~~~~~~~~~
src/slic3r/GUI/Field.hpp:382:33: note: candidate: 'void Slic3r::GUI::Choice::set_values(const wxArrayString&)'
382 | void set_values(const wxArrayString &values);
| ^~~~~~~~~~
These issues can be worked around with an explicit instantiation of the std::vector.
A better solution would be a change to wxWidgets, by making the initializer list constructor explicit.
A patch will follow shortly.
Regards,
Gregor
-- System Information:
Debian Release: trixie/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'stable-debug'), (500, 'proposed-updates-debug'), (300, 'unstable'), (1, 'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 6.5.0-4-amd64 (SMP w/24 CPU threads; PREEMPT)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
More information about the 3dprinter-general
mailing list