ACF
$AcfVersion:0$
Acf
Include
istd
TCloneableWrap.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2
#pragma once
3
4
5
// ACF includes
6
#include <
istd/IChangeable.h
>
7
8
9
namespace
istd
10
{
11
12
13
template
<
class
ModelImpl>
14
class
TCloneableWrap
:
public
ModelImpl
15
{
16
public
:
17
// pseudo-reimplemented (istd::IChangeable)
18
virtual
istd::IChangeableUniquePtr
CloneMe
(
istd::IChangeable::CompatibilityMode
mode =
istd::IChangeable::CM_WITHOUT_REFS
)
const override
;
19
};
20
21
22
// pseudo-reimplemented (istd::IChangeable)
23
24
template
<
class
ModelImpl>
25
istd::IChangeableUniquePtr
TCloneableWrap<ModelImpl>::CloneMe
(
istd::IChangeable::CompatibilityMode
mode)
const
26
{
27
istd::IChangeableUniquePtr
clonePtr(
new
ModelImpl);
28
if
(clonePtr->CopyFrom(*
this
, mode)){
29
return
clonePtr;
30
}
31
32
return
istd::IChangeableUniquePtr
();
33
}
34
35
36
}
// namespace istd
37
38
IChangeable.h
istd::IChangeable::CompatibilityMode
CompatibilityMode
Control how relationship betweeen objects are interpreted.
Definition
IChangeable.h:219
istd::IChangeable::CM_WITHOUT_REFS
@ CM_WITHOUT_REFS
External references are simple ignored.
Definition
IChangeable.h:229
istd::TCloneableWrap
Definition
TCloneableWrap.h:15
istd::TCloneableWrap::CloneMe
virtual istd::IChangeableUniquePtr CloneMe(istd::IChangeable::CompatibilityMode mode=istd::IChangeable::CM_WITHOUT_REFS) const override
Definition
TCloneableWrap.h:25
istd::TUniqueInterfacePtr< istd::IChangeable >
istd
Standard library.
Definition
IComponent.h:17
istd::IChangeableUniquePtr
istd::TUniqueInterfacePtr< istd::IChangeable > IChangeableUniquePtr
Definition
IChangeable.h:443
Generated by
1.9.8