Fix "sfinae-incomplete" warnings with GCC 16
Author: davidebeatriciCreated Sep 17, 2026Updated Sep 17, 2026
Labelsbuild
In file included from /home/runner/work/mumble/mumble/build/src/murmur/mumble_server_object_lib_autogen/EWIEGA46WW/../../../../../src/murmur/DBWrapper.h:19,
from /home/runner/work/mumble/mumble/build/src/murmur/mumble_server_object_lib_autogen/EWIEGA46WW/../../../../../src/murmur/Meta.h:10,
from /home/runner/work/mumble/mumble/build/src/murmur/mumble_server_object_lib_autogen/EWIEGA46WW/moc_Meta.cpp:9,
from /home/runner/work/mumble/mumble/build/src/murmur/mumble_server_object_lib_autogen/mocs_compilation.cpp:7,
from /home/runner/work/mumble/mumble/build/src/murmur/CMakeFiles/mumble_server_object_lib.dir/Unity/unity_0_cxx.cxx:4:
/home/runner/work/mumble/mumble/src/User.h:18:7: error: defining ‘User’, which previously failed to be complete in a SFINAE context [-Werror=sfinae-incomplete=]
18 | class User {
| ^~~~
In file included from /usr/include/x86_64-linux-gnu/qt6/QtCore/qobject.h:18,
from /usr/include/x86_64-linux-gnu/qt6/QtCore/QObject:1,
from /home/runner/work/mumble/mumble/build/src/murmur/mumble_server_object_lib_autogen/KXIUKS7IEJ/../../../../../3rdparty/qqbonjour/BonjourServiceRegister.h:35,
from /home/runner/work/mumble/mumble/build/src/murmur/mumble_server_object_lib_autogen/KXIUKS7IEJ/moc_BonjourServiceRegister.cpp:9,
from /home/runner/work/mumble/mumble/build/src/murmur/mumble_server_object_lib_autogen/mocs_compilation.cpp:2:
/usr/include/x86_64-linux-gnu/qt6/QtCore/qmetatype.h:882:64: note: here. Use ‘-Wsfinae-incomplete=2’ for a diagnostic at that point
882 | static auto check(U *) -> std::integral_constant<bool, sizeof(U) != 0>;
| ^~~~~~~~~
In file included from /home/runner/work/mumble/mumble/build/src/murmur/mumble_server_object_lib_autogen/EWIEGA46WW/moc_Server.cpp:9,
from /home/runner/work/mumble/mumble/build/src/murmur/mumble_server_object_lib_autogen/mocs_compilation.cpp:9:
/home/runner/work/mumble/mumble/build/src/murmur/mumble_server_object_lib_autogen/EWIEGA46WW/../../../../../src/murmur/Server.h:65:8: error: defining ‘TextMessage’, which previously failed to be complete in a SFINAE context [-Werror=sfinae-incomplete=]
65 | struct TextMessage {
| ^~~~~~~~~~~
/usr/include/x86_64-linux-gnu/qt6/QtCore/qmetatype.h:882:64: note: here. Use ‘-Wsfinae-incomplete=2’ for a diagnostic at that point
882 | static auto check(U *) -> std::integral_constant<bool, sizeof(U) != 0>;
| ^~~~~~~~~
/home/runner/work/mumble/mumble/build/src/murmur/mumble_server_object_lib_autogen/EWIEGA46WW/../../../../../src/murmur/Server.h:98:7: error: defining ‘Server’, which previously failed to be complete in a SFINAE context [-Werror=sfinae-incomplete=]
98 | class Server : public QThread {
| ^~~~~~
/usr/include/x86_64-linux-gnu/qt6/QtCore/qmetatype.h:882:64: note: here. Use ‘-Wsfinae-incomplete=2’ for a diagnostic at that point
882 | static auto check(U *) -> std::integral_constant<bool, sizeof(U) != 0>;
| ^~~~~~~~~
cc1plus: all warnings being treated as errors ^~~~~~~~~Source: mumble-voip/mumble