** Description changed: - There are compilation errors when I try to include the <glibmm.h> header under C++20. + There are compilation errors when I try to include the <glibmm.h> header under C++20 and run default compiler, GCC 11. This is reproducible in Ubuntu 21.10 (Impish Indri) or Ubuntu devel (Jammy Jellyfish) but not in Ubuntu 21.04 (Impish Indri) or Debian unstable. And this is effecting building of the telegram-desktop package. - mymedia@barberry:~$ g++ -x c++ -std=gnu++20 -include glibmm.h - <<< 'int main(){}' `pkg-config --cflags --libs glibmm-2.4` -o /dev/null + mymedia@barberry:~$ 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>: + 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>(); - | ^ + 956 | Variant<VariantBase>(); + | ^ /usr/include/glibmm-2.4/glibmm/variant.h:1017:25: error: expected unqualified-id before ‘)’ token - 1017 | Variant< Variant<T> >(); - | ^ + 1017 | Variant< Variant<T> >(); + | ^ /usr/include/glibmm-2.4/glibmm/variant.h:1070:26: error: expected unqualified-id before ‘)’ token - 1070 | Variant<Glib::ustring>(); - | ^ + 1070 | Variant<Glib::ustring>(); + | ^ /usr/include/glibmm-2.4/glibmm/variant.h:1240:24: error: expected unqualified-id before ‘)’ token - 1240 | Variant<std::string>(); - | ^ + 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> >() - | ^ + 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> >() - | ^ + 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> >(); - | ^ + 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> >(); - | ^ + 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> >() - | ^ + 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...>>() - | ^ + 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>: + 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>() - | ^ + 23 | Variant<bool>() + | ^ /usr/include/glibmm-2.4/glibmm/variant_basictypes.h:66:26: error: expected unqualified-id before ‘)’ token - 66 | Variant<unsigned char>() - | ^ + 66 | Variant<unsigned char>() + | ^ /usr/include/glibmm-2.4/glibmm/variant_basictypes.h:109:19: error: expected unqualified-id before ‘)’ token - 109 | Variant<gint16>() - | ^ + 109 | Variant<gint16>() + | ^ /usr/include/glibmm-2.4/glibmm/variant_basictypes.h:152:20: error: expected unqualified-id before ‘)’ token - 152 | Variant<guint16>() - | ^ + 152 | Variant<guint16>() + | ^ /usr/include/glibmm-2.4/glibmm/variant_basictypes.h:195:19: error: expected unqualified-id before ‘)’ token - 195 | Variant<gint32>() - | ^ + 195 | Variant<gint32>() + | ^ /usr/include/glibmm-2.4/glibmm/variant_basictypes.h:244:20: error: expected unqualified-id before ‘)’ token - 244 | Variant<guint32>() - | ^ + 244 | Variant<guint32>() + | ^ /usr/include/glibmm-2.4/glibmm/variant_basictypes.h:287:19: error: expected unqualified-id before ‘)’ token - 287 | Variant<gint64>() - | ^ + 287 | Variant<gint64>() + | ^ /usr/include/glibmm-2.4/glibmm/variant_basictypes.h:330:20: error: expected unqualified-id before ‘)’ token - 330 | Variant<guint64>() - | ^ + 330 | Variant<guint64>() + | ^ /usr/include/glibmm-2.4/glibmm/variant_basictypes.h:373:19: error: expected unqualified-id before ‘)’ token - 373 | Variant<double>() - | ^ + 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>: + 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() - | ^~~~~~~~~~~~~~~~~~~~~ + 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>: + 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); - | ^~~~~~~~~~~~~~~~~~~~~ + 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 - | ^~~~~~~~~~~~~~~~~~~~~ + 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 + + [Where problems could occur] + The proposed patch only modifies C++ headers. It may affect only building other packages from source or developer experience.
** Summary changed: - /usr/include/glibmm-2.4/glibmm/variant.h:956:24: error: expected unqualified-id before ‘)’ token + [SRU] /usr/include/glibmm-2.4/glibmm/variant.h:956:24: error: expected unqualified-id before ‘)’ token -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to glibmm2.4 in Ubuntu. https://bugs.launchpad.net/bugs/1955044 Title: [SRU] /usr/include/glibmm-2.4/glibmm/variant.h:956:24: error: expected unqualified-id before ‘)’ token Status in glibmm2.4 package in Ubuntu: New Bug description: There are compilation errors when I try to include the <glibmm.h> header under C++20 and run default compiler, GCC 11. This is reproducible in Ubuntu 21.10 (Impish Indri) or Ubuntu devel (Jammy Jellyfish) but not in Ubuntu 21.04 (Impish Indri) or Debian unstable. And this is effecting building of the telegram-desktop package. mymedia@barberry:~$ 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 [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 -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp