Allow assigning to default-initialized style::icon-s.

This commit is contained in:
John Preston 2021-09-03 18:50:59 +03:00
parent 1180d13a5c
commit a8ce22fd75

View file

@ -83,10 +83,8 @@ private:
class IconData { class IconData {
public: public:
struct FromIcons {
};
template <typename ...MonoIcons> template <typename ...MonoIcons>
IconData(FromIcons, MonoIcons &&...icons) { IconData(std::in_place_t, MonoIcons &&...icons) {
created(); created();
_parts.reserve(sizeof...(MonoIcons)); _parts.reserve(sizeof...(MonoIcons));
addIcons(std::forward<MonoIcons>(icons)...); addIcons(std::forward<MonoIcons>(icons)...);
@ -151,14 +149,12 @@ private:
class Icon { class Icon {
public: public:
Icon(Qt::Initialization) { Icon(Qt::Initialization = Qt::Uninitialized) {
} }
template <typename ... MonoIcons> template <typename ... MonoIcons>
Icon(MonoIcons&&... icons) Icon(std::in_place_t, MonoIcons&&... icons)
: _data(new IconData( : _data(new IconData(std::in_place, std::forward<MonoIcons>(icons)...))
IconData::FromIcons{},
std::forward<MonoIcons>(icons)...))
, _owner(true) { , _owner(true) {
} }
Icon(const Icon &other) : _data(other._data) { Icon(const Icon &other) : _data(other._data) {