It's not enough to just patch the .hg files as the build system doesn't regenerate the .h files automatically. -Dmaintainer-mode=true comes with its own pitfalls (see the revert in the previous commit), so this commit just patches the .h files to match the .hg changes from upstream patch. https://bugzilla.redhat.com/show_bug.cgi?id=1947838 Resolves: #1951127 (cherry picked from Fedora commit b98cb6c4aac0d400d415315241390551644e18da)
589 lines
17 KiB
Diff
589 lines
17 KiB
Diff
From f40371dae96ae340b752a985621598439f09ad40 Mon Sep 17 00:00:00 2001
|
|
From: Magne Oestlyngen <magne@spacetec.no>
|
|
Date: Tue, 6 Apr 2021 14:59:16 +0200
|
|
Subject: [PATCH] Variant: Fix so it works with C++20
|
|
|
|
C++20 changed some aspects of templates that broke variant.h on
|
|
some compilers (GCC 11).
|
|
|
|
Ref: https://wg21.cmeerw.net/cwg/issue2237
|
|
|
|
template<class T>
|
|
struct A {
|
|
A<T>(); // ok pre-C++20, now incorrect
|
|
// A(); // correct for all versions
|
|
};
|
|
|
|
This commit removes the "simple-template-id" from both the default
|
|
constructor (no args) and the explicit constructor (has args), even
|
|
though only the default constructor currently gives error on GCC 11.
|
|
Since both versions are wrong according to the issue referred to above
|
|
it is expected that GCC (and possibly other compilers) will be updated
|
|
to fail on both cases in the future.
|
|
---
|
|
glib/src/variant.hg | 40 ++++++++++++++++----------------
|
|
glib/src/variant_basictypes.h.m4 | 4 ++--
|
|
2 files changed, 22 insertions(+), 22 deletions(-)
|
|
|
|
diff --git a/glib/src/variant.hg b/glib/src/variant.hg
|
|
index 807e52ef..011aa994 100644
|
|
--- a/glib/src/variant.hg
|
|
+++ b/glib/src/variant.hg
|
|
@@ -470,7 +470,7 @@ public:
|
|
using CppContainerType = Variant<VariantBase>;
|
|
|
|
/// Default constructor.
|
|
- Variant<VariantBase>();
|
|
+ Variant();
|
|
|
|
/** GVariant constructor.
|
|
* @param castitem The GVariant to wrap.
|
|
@@ -478,7 +478,7 @@ public:
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant<VariantBase>(GVariant* castitem, bool take_a_reference = false);
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false);
|
|
|
|
/** Gets the VariantType.
|
|
* @return The VariantType.
|
|
@@ -521,7 +521,7 @@ public:
|
|
using CppContainerType = Variant<CppType>;
|
|
|
|
/// Default constructor.
|
|
- Variant< Variant<T> >();
|
|
+ Variant();
|
|
|
|
/** GVariant constructor.
|
|
* @param castitem The GVariant to wrap.
|
|
@@ -530,7 +530,7 @@ public:
|
|
* wrapper).
|
|
* @newin{2,36}
|
|
*/
|
|
- explicit Variant< Variant<T> >(GVariant* castitem, bool take_a_reference = false);
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false);
|
|
|
|
/** Gets the VariantType.
|
|
* @return The VariantType.
|
|
@@ -567,7 +567,7 @@ public:
|
|
using CppType = Glib::ustring;
|
|
|
|
/// Default constructor.
|
|
- Variant<Glib::ustring>();
|
|
+ Variant();
|
|
|
|
/** GVariant constructor.
|
|
* @param castitem The GVariant to wrap.
|
|
@@ -575,7 +575,7 @@ public:
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant<Glib::ustring>(GVariant* castitem, bool take_a_reference = false);
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false);
|
|
|
|
/** Gets the VariantType.
|
|
* @return The VariantType.
|
|
@@ -711,7 +711,7 @@ public:
|
|
using CppType = std::string;
|
|
|
|
/// Default constructor.
|
|
- Variant<std::string>();
|
|
+ Variant();
|
|
|
|
/** GVariant constructor.
|
|
* @param castitem The GVariant to wrap.
|
|
@@ -719,7 +719,7 @@ public:
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant<std::string>(GVariant* castitem, bool take_a_reference = false);
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false);
|
|
|
|
/** Gets the VariantType.
|
|
* @return The VariantType.
|
|
@@ -756,7 +756,7 @@ public:
|
|
using CppContainerType = Variant<CppType>;
|
|
|
|
/// Default constructor.
|
|
- Variant< std::pair<K, V> >()
|
|
+ Variant()
|
|
: VariantContainerBase()
|
|
{}
|
|
|
|
@@ -766,7 +766,7 @@ public:
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant< std::pair<K, V> >(GVariant* castitem,
|
|
+ explicit Variant(GVariant* castitem,
|
|
bool take_a_reference = false)
|
|
: VariantContainerBase(castitem, take_a_reference)
|
|
{}
|
|
@@ -805,7 +805,7 @@ public:
|
|
using CppContainerType = std::vector<T>;
|
|
|
|
/// Default constructor.
|
|
- Variant< std::vector<T> >()
|
|
+ Variant()
|
|
: VariantContainerBase()
|
|
{}
|
|
|
|
@@ -815,7 +815,7 @@ public:
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant< std::vector<T> >(GVariant* castitem,
|
|
+ explicit Variant(GVariant* castitem,
|
|
bool take_a_reference = false)
|
|
: VariantContainerBase(castitem, take_a_reference)
|
|
{}
|
|
@@ -874,7 +874,7 @@ public:
|
|
using CppContainerType = std::vector<Glib::ustring>;
|
|
|
|
/// Default constructor.
|
|
- Variant< std::vector<Glib::ustring> >();
|
|
+ Variant();
|
|
|
|
/** GVariant constructor.
|
|
* @param castitem The GVariant to wrap.
|
|
@@ -882,7 +882,7 @@ public:
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant< std::vector<Glib::ustring> >(GVariant* castitem, bool take_a_reference = false);
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false);
|
|
|
|
/** Gets the VariantType.
|
|
* @return The VariantType.
|
|
@@ -1000,7 +1000,7 @@ public:
|
|
using CppContainerType = std::vector<std::string>;
|
|
|
|
/// Default constructor.
|
|
- Variant< std::vector<std::string> >();
|
|
+ Variant();
|
|
|
|
/** GVariant constructor.
|
|
* @param castitem The GVariant to wrap.
|
|
@@ -1008,7 +1008,7 @@ public:
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant< std::vector<std::string> >(GVariant* castitem, bool take_a_reference = false);
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false);
|
|
|
|
/** Gets the VariantType.
|
|
* @return The VariantType.
|
|
@@ -1076,7 +1076,7 @@ public:
|
|
using CppContainerType = std::map<K, V>;
|
|
|
|
/// Default constructor.
|
|
- Variant< std::map<K, V> >()
|
|
+ Variant()
|
|
: VariantContainerBase()
|
|
{}
|
|
|
|
@@ -1086,7 +1086,7 @@ public:
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant< std::map<K, V> >(GVariant* castitem,
|
|
+ explicit Variant(GVariant* castitem,
|
|
bool take_a_reference = false)
|
|
: VariantContainerBase(castitem, take_a_reference)
|
|
{}
|
|
@@ -1149,7 +1149,7 @@ public:
|
|
using CppContainerType = std::tuple<Types...>;
|
|
|
|
/// Default constructor
|
|
- Variant<std::tuple<Types...>>()
|
|
+ Variant()
|
|
: VariantContainerBase()
|
|
{}
|
|
|
|
@@ -1158,7 +1158,7 @@ public:
|
|
* @param take_a_reference Whether to take an extra reference of the GVariant
|
|
* or not (not taking one could destroy the GVariant with the wrapper).
|
|
*/
|
|
- explicit Variant<std::tuple<Types...>>(GVariant* castitem, bool take_a_reference = false)
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false)
|
|
: VariantContainerBase(castitem, take_a_reference)
|
|
{}
|
|
|
|
diff --git a/glib/src/variant_basictypes.h.m4 b/glib/src/variant_basictypes.h.m4
|
|
index 199295b9..f73992fd 100644
|
|
--- a/glib/src/variant_basictypes.h.m4
|
|
+++ b/glib/src/variant_basictypes.h.m4
|
|
@@ -45,7 +45,7 @@ public:
|
|
using CType = $2;
|
|
|
|
/// Default constructor.
|
|
- Variant<$1>()
|
|
+ Variant()
|
|
: VariantBase()
|
|
{}
|
|
|
|
@@ -55,7 +55,7 @@ public:
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant<$1>(GVariant* castitem, bool take_a_reference = false)
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false)
|
|
: VariantBase(castitem, take_a_reference)
|
|
{}
|
|
|
|
--
|
|
2.30.2
|
|
|
|
--- glibmm-2.66.0.orig/untracked/glib/glibmm/variant.h 2021-01-27 10:56:33.969063300 +0100
|
|
+++ glibmm-2.66.0/untracked/glib/glibmm/variant.h 2021-04-14 13:48:33.792287859 +0200
|
|
@@ -959,7 +959,7 @@
|
|
using CppContainerType = Variant<VariantBase>;
|
|
|
|
/// Default constructor.
|
|
- Variant<VariantBase>();
|
|
+ Variant();
|
|
|
|
/** GVariant constructor.
|
|
* @param castitem The GVariant to wrap.
|
|
@@ -967,7 +967,7 @@
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant<VariantBase>(GVariant* castitem, bool take_a_reference = false);
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false);
|
|
|
|
/** Gets the VariantType.
|
|
* @return The VariantType.
|
|
@@ -1020,7 +1020,7 @@
|
|
using CppContainerType = Variant<CppType>;
|
|
|
|
/// Default constructor.
|
|
- Variant< Variant<T> >();
|
|
+ Variant();
|
|
|
|
/** GVariant constructor.
|
|
* @param castitem The GVariant to wrap.
|
|
@@ -1029,7 +1029,7 @@
|
|
* wrapper).
|
|
* @newin{2,36}
|
|
*/
|
|
- explicit Variant< Variant<T> >(GVariant* castitem, bool take_a_reference = false);
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false);
|
|
|
|
/** Gets the VariantType.
|
|
* @return The VariantType.
|
|
@@ -1073,7 +1073,7 @@
|
|
using CppType = Glib::ustring;
|
|
|
|
/// Default constructor.
|
|
- Variant<Glib::ustring>();
|
|
+ Variant();
|
|
|
|
/** GVariant constructor.
|
|
* @param castitem The GVariant to wrap.
|
|
@@ -1081,7 +1081,7 @@
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant<Glib::ustring>(GVariant* castitem, bool take_a_reference = false);
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false);
|
|
|
|
/** Gets the VariantType.
|
|
* @return The VariantType.
|
|
@@ -1243,7 +1243,7 @@
|
|
using CppType = std::string;
|
|
|
|
/// Default constructor.
|
|
- Variant<std::string>();
|
|
+ Variant();
|
|
|
|
/** GVariant constructor.
|
|
* @param castitem The GVariant to wrap.
|
|
@@ -1251,7 +1251,7 @@
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant<std::string>(GVariant* castitem, bool take_a_reference = false);
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false);
|
|
|
|
/** Gets the VariantType.
|
|
* @return The VariantType.
|
|
@@ -1289,7 +1289,7 @@
|
|
using CppContainerType = Variant<CppType>;
|
|
|
|
/// Default constructor.
|
|
- Variant< std::pair<K, V> >()
|
|
+ Variant()
|
|
: VariantContainerBase()
|
|
{}
|
|
|
|
@@ -1299,7 +1299,7 @@
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant< std::pair<K, V> >(GVariant* castitem,
|
|
+ explicit Variant(GVariant* castitem,
|
|
bool take_a_reference = false)
|
|
: VariantContainerBase(castitem, take_a_reference)
|
|
{}
|
|
@@ -1338,7 +1338,7 @@
|
|
using CppContainerType = std::vector<T>;
|
|
|
|
/// Default constructor.
|
|
- Variant< std::vector<T> >()
|
|
+ Variant()
|
|
: VariantContainerBase()
|
|
{}
|
|
|
|
@@ -1348,7 +1348,7 @@
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant< std::vector<T> >(GVariant* castitem,
|
|
+ explicit Variant(GVariant* castitem,
|
|
bool take_a_reference = false)
|
|
: VariantContainerBase(castitem, take_a_reference)
|
|
{}
|
|
@@ -1407,7 +1407,7 @@
|
|
using CppContainerType = std::vector<Glib::ustring>;
|
|
|
|
/// Default constructor.
|
|
- Variant< std::vector<Glib::ustring> >();
|
|
+ Variant();
|
|
|
|
/** GVariant constructor.
|
|
* @param castitem The GVariant to wrap.
|
|
@@ -1415,7 +1415,7 @@
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant< std::vector<Glib::ustring> >(GVariant* castitem, bool take_a_reference = false);
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false);
|
|
|
|
/** Gets the VariantType.
|
|
* @return The VariantType.
|
|
@@ -1533,7 +1533,7 @@
|
|
using CppContainerType = std::vector<std::string>;
|
|
|
|
/// Default constructor.
|
|
- Variant< std::vector<std::string> >();
|
|
+ Variant();
|
|
|
|
/** GVariant constructor.
|
|
* @param castitem The GVariant to wrap.
|
|
@@ -1541,7 +1541,7 @@
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant< std::vector<std::string> >(GVariant* castitem, bool take_a_reference = false);
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false);
|
|
|
|
/** Gets the VariantType.
|
|
* @return The VariantType.
|
|
@@ -1609,7 +1609,7 @@
|
|
using CppContainerType = std::map<K, V>;
|
|
|
|
/// Default constructor.
|
|
- Variant< std::map<K, V> >()
|
|
+ Variant()
|
|
: VariantContainerBase()
|
|
{}
|
|
|
|
@@ -1619,7 +1619,7 @@
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant< std::map<K, V> >(GVariant* castitem,
|
|
+ explicit Variant(GVariant* castitem,
|
|
bool take_a_reference = false)
|
|
: VariantContainerBase(castitem, take_a_reference)
|
|
{}
|
|
@@ -1682,7 +1682,7 @@
|
|
using CppContainerType = std::tuple<Types...>;
|
|
|
|
/// Default constructor
|
|
- Variant<std::tuple<Types...>>()
|
|
+ Variant()
|
|
: VariantContainerBase()
|
|
{}
|
|
|
|
@@ -1691,7 +1691,7 @@
|
|
* @param take_a_reference Whether to take an extra reference of the GVariant
|
|
* or not (not taking one could destroy the GVariant with the wrapper).
|
|
*/
|
|
- explicit Variant<std::tuple<Types...>>(GVariant* castitem, bool take_a_reference = false)
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false)
|
|
: VariantContainerBase(castitem, take_a_reference)
|
|
{}
|
|
|
|
--- glibmm-2.66.0.orig/untracked/glib/glibmm/variant_basictypes.h 2021-01-27 10:56:34.057059800 +0100
|
|
+++ glibmm-2.66.0/untracked/glib/glibmm/variant_basictypes.h 2021-04-14 13:48:33.563288223 +0200
|
|
@@ -1,4 +1,4 @@
|
|
-// This is a generated file. Do not edit it. Generated from ../../gnome/glibmm-2.4/glib/glibmm/../src/variant_basictypes.h.m4
|
|
+// This is a generated file. Do not edit it. Generated from ../glib/glibmm/../src/variant_basictypes.h.m4
|
|
|
|
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
|
#ifndef _GLIBMM_VARIANT_H_INCLUDE_VARIANT_BASICTYPES_H
|
|
@@ -20,7 +20,7 @@
|
|
using CType = gboolean;
|
|
|
|
/// Default constructor.
|
|
- Variant<bool>()
|
|
+ Variant()
|
|
: VariantBase()
|
|
{}
|
|
|
|
@@ -30,7 +30,7 @@
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant<bool>(GVariant* castitem, bool take_a_reference = false)
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false)
|
|
: VariantBase(castitem, take_a_reference)
|
|
{}
|
|
|
|
@@ -63,7 +63,7 @@
|
|
using CType = guchar;
|
|
|
|
/// Default constructor.
|
|
- Variant<unsigned char>()
|
|
+ Variant()
|
|
: VariantBase()
|
|
{}
|
|
|
|
@@ -73,7 +73,7 @@
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant<unsigned char>(GVariant* castitem, bool take_a_reference = false)
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false)
|
|
: VariantBase(castitem, take_a_reference)
|
|
{}
|
|
|
|
@@ -106,7 +106,7 @@
|
|
using CType = gint16;
|
|
|
|
/// Default constructor.
|
|
- Variant<gint16>()
|
|
+ Variant()
|
|
: VariantBase()
|
|
{}
|
|
|
|
@@ -116,7 +116,7 @@
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant<gint16>(GVariant* castitem, bool take_a_reference = false)
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false)
|
|
: VariantBase(castitem, take_a_reference)
|
|
{}
|
|
|
|
@@ -149,7 +149,7 @@
|
|
using CType = guint16;
|
|
|
|
/// Default constructor.
|
|
- Variant<guint16>()
|
|
+ Variant()
|
|
: VariantBase()
|
|
{}
|
|
|
|
@@ -159,7 +159,7 @@
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant<guint16>(GVariant* castitem, bool take_a_reference = false)
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false)
|
|
: VariantBase(castitem, take_a_reference)
|
|
{}
|
|
|
|
@@ -192,7 +192,7 @@
|
|
using CType = gint32;
|
|
|
|
/// Default constructor.
|
|
- Variant<gint32>()
|
|
+ Variant()
|
|
: VariantBase()
|
|
{}
|
|
|
|
@@ -202,7 +202,7 @@
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant<gint32>(GVariant* castitem, bool take_a_reference = false)
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false)
|
|
: VariantBase(castitem, take_a_reference)
|
|
{}
|
|
|
|
@@ -241,7 +241,7 @@
|
|
using CType = guint32;
|
|
|
|
/// Default constructor.
|
|
- Variant<guint32>()
|
|
+ Variant()
|
|
: VariantBase()
|
|
{}
|
|
|
|
@@ -251,7 +251,7 @@
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant<guint32>(GVariant* castitem, bool take_a_reference = false)
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false)
|
|
: VariantBase(castitem, take_a_reference)
|
|
{}
|
|
|
|
@@ -284,7 +284,7 @@
|
|
using CType = gint64;
|
|
|
|
/// Default constructor.
|
|
- Variant<gint64>()
|
|
+ Variant()
|
|
: VariantBase()
|
|
{}
|
|
|
|
@@ -294,7 +294,7 @@
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant<gint64>(GVariant* castitem, bool take_a_reference = false)
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false)
|
|
: VariantBase(castitem, take_a_reference)
|
|
{}
|
|
|
|
@@ -327,7 +327,7 @@
|
|
using CType = guint64;
|
|
|
|
/// Default constructor.
|
|
- Variant<guint64>()
|
|
+ Variant()
|
|
: VariantBase()
|
|
{}
|
|
|
|
@@ -337,7 +337,7 @@
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant<guint64>(GVariant* castitem, bool take_a_reference = false)
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false)
|
|
: VariantBase(castitem, take_a_reference)
|
|
{}
|
|
|
|
@@ -370,7 +370,7 @@
|
|
using CType = gdouble;
|
|
|
|
/// Default constructor.
|
|
- Variant<double>()
|
|
+ Variant()
|
|
: VariantBase()
|
|
{}
|
|
|
|
@@ -380,7 +380,7 @@
|
|
* GVariant or not (not taking one could destroy the GVariant with the
|
|
* wrapper).
|
|
*/
|
|
- explicit Variant<double>(GVariant* castitem, bool take_a_reference = false)
|
|
+ explicit Variant(GVariant* castitem, bool take_a_reference = false)
|
|
: VariantBase(castitem, take_a_reference)
|
|
{}
|
|
|