[Bug 1955044] Re: [SRU] /usr/include/glibmm-2.4/glibmm/variant.h:956:24: error: expected unqualified-id before ‘)’ token (with GCC 11 in C++20 mode)
Jeremy Bicha
1955044 at bugs.launchpad.net
Sat Jun 18 01:53:48 UTC 2022
** Changed in: glibmm2.4 (Ubuntu Impish)
Status: Triaged => In Progress
--
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1955044
Title:
[SRU] /usr/include/glibmm-2.4/glibmm/variant.h:956:24: error: expected
unqualified-id before ‘)’ token (with GCC 11 in C++20 mode)
Status in glibmm2.4 package in Ubuntu:
Fix Released
Status in glibmm2.4 source package in Impish:
In Progress
Bug description:
Impact
======
It's not possible to build using the <glibmm.h> header under C++20 with the default compiler, GCC 11. This is interfering with being able to build telegram-desktop.
This was fixed for Ubuntu 22.04 LTS with 2.66.1
Demonstration of the Issue
==========================
$ g++ -x c++ -std=gnu++20 -include glibmm.h - <<< 'int main(){}' `pkg-config --cflags --libs glibmm-2.4` -o /dev/null
In file included from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
from /usr/include/glibmm-2.4/glibmm.h:92,
from <command-line>:
/usr/include/glibmm-2.4/glibmm/variant.h:956:24: error: expected unqualified-id before ‘)’ token
956 | Variant<VariantBase>();
| ^
/usr/include/glibmm-2.4/glibmm/variant.h:1017:25: error: expected unqualified-id before ‘)’ token
1017 | Variant< Variant<T> >();
| ^
/usr/include/glibmm-2.4/glibmm/variant.h:1070:26: error: expected unqualified-id before ‘)’ token
1070 | Variant<Glib::ustring>();
| ^
/usr/include/glibmm-2.4/glibmm/variant.h:1240:24: error: expected unqualified-id before ‘)’ token
1240 | Variant<std::string>();
| ^
/usr/include/glibmm-2.4/glibmm/variant.h:1286:30: error: expected unqualified-id before ‘)’ token
1286 | Variant< std::pair<K, V> >()
| ^
/usr/include/glibmm-2.4/glibmm/variant.h:1335:29: error: expected unqualified-id before ‘)’ token
1335 | Variant< std::vector<T> >()
| ^
/usr/include/glibmm-2.4/glibmm/variant.h:1404:41: error: expected unqualified-id before ‘)’ token
1404 | Variant< std::vector<Glib::ustring> >();
| ^
/usr/include/glibmm-2.4/glibmm/variant.h:1530:39: error: expected unqualified-id before ‘)’ token
1530 | Variant< std::vector<std::string> >();
| ^
/usr/include/glibmm-2.4/glibmm/variant.h:1606:29: error: expected unqualified-id before ‘)’ token
1606 | Variant< std::map<K, V> >()
| ^
/usr/include/glibmm-2.4/glibmm/variant.h:1679:33: error: expected unqualified-id before ‘)’ token
1679 | Variant<std::tuple<Types...>>()
| ^
In file included from /usr/include/glibmm-2.4/glibmm/variant.h:1742,
from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
from /usr/include/glibmm-2.4/glibmm.h:92,
from <command-line>:
/usr/include/glibmm-2.4/glibmm/variant_basictypes.h:23:17: error: expected unqualified-id before ‘)’ token
23 | Variant<bool>()
| ^
/usr/include/glibmm-2.4/glibmm/variant_basictypes.h:66:26: error: expected unqualified-id before ‘)’ token
66 | Variant<unsigned char>()
| ^
/usr/include/glibmm-2.4/glibmm/variant_basictypes.h:109:19: error: expected unqualified-id before ‘)’ token
109 | Variant<gint16>()
| ^
/usr/include/glibmm-2.4/glibmm/variant_basictypes.h:152:20: error: expected unqualified-id before ‘)’ token
152 | Variant<guint16>()
| ^
/usr/include/glibmm-2.4/glibmm/variant_basictypes.h:195:19: error: expected unqualified-id before ‘)’ token
195 | Variant<gint32>()
| ^
/usr/include/glibmm-2.4/glibmm/variant_basictypes.h:244:20: error: expected unqualified-id before ‘)’ token
244 | Variant<guint32>()
| ^
/usr/include/glibmm-2.4/glibmm/variant_basictypes.h:287:19: error: expected unqualified-id before ‘)’ token
287 | Variant<gint64>()
| ^
/usr/include/glibmm-2.4/glibmm/variant_basictypes.h:330:20: error: expected unqualified-id before ‘)’ token
330 | Variant<guint64>()
| ^
/usr/include/glibmm-2.4/glibmm/variant_basictypes.h:373:19: error: expected unqualified-id before ‘)’ token
373 | Variant<double>()
| ^
In file included from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
from /usr/include/glibmm-2.4/glibmm.h:92,
from <command-line>:
/usr/include/glibmm-2.4/glibmm/variant.h:1751:1: error: no declaration matches ‘Glib::Variant<Glib::Variant<T> >::Variant()’
1751 | Variant< Variant<T> >::Variant()
| ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glibmm-2.4/glibmm/containerhandle_shared.h:23,
from /usr/include/glibmm-2.4/glibmm/arrayhandle.h:21,
from /usr/include/glibmm-2.4/glibmm.h:92,
from <command-line>:
/usr/include/glibmm-2.4/glibmm/variant.h:1026:12: note: candidate is: ‘Glib::Variant<Glib::Variant<T> >::Variant(GVariant*, bool)’
1026 | explicit Variant< Variant<T> >(GVariant* castitem, bool take_a_reference = false);
| ^~~~~~~~~~~~~~~~~~~~~
/usr/include/glibmm-2.4/glibmm/variant.h:1009:7: note: ‘class Glib::Variant<Glib::Variant<T> >’ defined here
1009 | class Variant< Variant<T> > : public VariantContainerBase
| ^~~~~~~~~~~~~~~~~~~~~
Test Plan
=========
Run the following two terminal commands in Bash:
1. sudo apt-get satisfy libglibmm-2.4-dev 'build-essential | g++'
2. g++ -x c++ -std=gnu++20 -include glibmm.h - <<< 'int main(){}' `pkg-config --cflags --libs glibmm-2.4` -o /dev/null
Make sure the latter command produced no output and ended with zero
exit code.
Where problems could occur
===========================
The proposed patch only modifies C++ headers. It may affect only building other packages from source or developer experience.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glibmm2.4/+bug/1955044/+subscriptions
More information about the Ubuntu-sponsors
mailing list