mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-05 10:38:08 +01:00
552b8fd862
When included inside an `extern "C"` block, this causes build failures that look something like: /usr/include/c++/10/type_traits:2930:3: error: template with C linkage 2930 | template<typename _Fn, typename... _Args> | ^~~~~~~~ ../../disas/arm-a64.cc:20:1: note: ‘extern "C"’ linkage started here 20 | extern "C" { | ^~~~~~~~~~ Commit 4273c43902a7e6b22cea0041436ee5715c93be76 made this opt in for projects which are defining `GLIB_VERSION_MIN_REQUIRED`, but the include of `<type_traits>` via `gmacros.h` was not included in this. If we move the include out to the places where `glib_typeof` is called, we can make it covered by this macro too, and save a few consumers from FTBFSing. That also means that, if you don't want to fix your use of the headers, and as long as this version is sufficient for you, a quick workaround is to define `GLIB_VERSION_MIN_REQUIRED` to `GLIB_VERSION_2_66` or lower. Suggested by Simon McVittie. Alternative to: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1935 Fixes: https://gitlab.gnome.org/GNOME/glib/-/issues/2331