blob: a4a509a8f3c7a094ac5bb24051a02428b6911d52 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#ifndef _GLIBMM_TEST_DERIVED_OBJECTBASE_H
#define _GLIBMM_TEST_DERIVED_OBJECTBASE_H
#include <glibmm.h>
class DerivedObjectBase : public Glib::ObjectBase
{
public:
// A real application would never make the constructor public.
// It would instead have a protected constructor and a public create() method.
DerivedObjectBase(GObject* gobject, int i) : Glib::ObjectBase(nullptr), i_(i)
{
Glib::ObjectBase::initialize(gobject);
}
DerivedObjectBase(const DerivedObjectBase& src) = delete;
DerivedObjectBase& operator=(const DerivedObjectBase& src) = delete;
DerivedObjectBase(DerivedObjectBase&& src) noexcept : Glib::ObjectBase(std::move(src)),
i_(std::move(src.i_))
{
ObjectBase::initialize_move(src.gobject_, &src);
}
DerivedObjectBase& operator=(DerivedObjectBase&& src) noexcept
{
Glib::ObjectBase::operator=(std::move(src));
i_ = std::move(src.i_);
return *this;
}
int i_;
};
#endif // _GLIBMM_TEST_DERIVED_OBJECTBASE_H
|