** Changed in: glibmm2.4 (Ubuntu)
   Importance: Undecided => Medium

** Changed in: glibmm2.4 (Ubuntu Impish)
   Importance: Undecided => Medium

-- 
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 (with GCC 11 in C++20 mode)

Status in glibmm2.4 package in Ubuntu:
  Fix Released
Status in glibmm2.4 source package in Impish:
  Triaged

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


-- 
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

Reply via email to