10 template<
typename TYPE>
11 class transform :
public cloneable {
13 virtual void apply(TYPE& t);
15 ~transform()
override =
default;
16 transform* clone()
const override;
17 explicit transform() =
default;
18 virtual void operator()(TYPE& t);
21 template<
typename TYPE>
22 class addOptTransform final :
public transform<TYPE>{
24 void apply(TYPE &t)
override;
26 addOptTransform* clone()
const override;
27 explicit addOptTransform(
const TYPE& t);
30 template<
typename TYPE>
31 class assignOptTransform final :
public transform<TYPE>{
33 void apply(TYPE &t)
override;
35 assignOptTransform* clone()
const override;
36 explicit assignOptTransform(
const TYPE& val);
39 template<
typename TYPE>
40 class multiOptTransform final :
public transform<TYPE>{
42 void apply(TYPE &t)
override;
44 multiOptTransform* clone()
const override;
45 explicit multiOptTransform(
const TYPE& t);
48 template<
typename TYPE>
49 class absTransform final :
public transform<TYPE>{
50 void apply(TYPE &t)
override;
52 absTransform* clone()
const override;
53 explicit absTransform() =
default;
56 template<
typename TYPE>
57 class copyTransform final :
public transform<TYPE>{
59 void apply(TYPE &t)
override;
61 copyTransform* clone()
const override;
67 template<
typename TYPE>
68 void original::transform<TYPE>::apply(TYPE&) {}
70 template <
typename TYPE>
71 auto original::transform<TYPE>::clone() const -> transform*
73 return new transform(*
this);
76 template<
typename TYPE>
77 auto original::transform<TYPE>::operator()(TYPE& t) ->
void
82 template<
typename TYPE>
83 original::assignOptTransform<TYPE>::assignOptTransform(
const TYPE& val)
86 template <
typename TYPE>
92 template<
typename TYPE>
93 auto original::assignOptTransform<TYPE>::apply(TYPE& t) ->
void
98 template<
typename TYPE>
99 original::addOptTransform<TYPE>::addOptTransform(
const TYPE &t) : t_(t) {}
101 template <
typename TYPE>
102 auto original::addOptTransform<TYPE>::clone() const ->
addOptTransform*
107 template<
typename TYPE>
108 auto original::addOptTransform<TYPE>::apply(TYPE& t) ->
void
113 template<
typename TYPE>
114 original::multiOptTransform<TYPE>::multiOptTransform(
const TYPE &t) : t_(t) {}
116 template <
typename TYPE>
122 template<
typename TYPE>
123 auto original::multiOptTransform<TYPE>::apply(TYPE& t) ->
void
128 template <
typename TYPE>
129 auto original::absTransform<TYPE>::clone() const ->
absTransform*
134 template<
typename TYPE>
135 auto original::absTransform<TYPE>::apply(TYPE& t) ->
void
137 t = original::abs(t);
140 template<
typename TYPE>
144 template <
typename TYPE>
145 auto original::copyTransform<TYPE>::clone() const ->
copyTransform*
150 template<
typename TYPE>
151 auto original::copyTransform<TYPE>::apply(TYPE& t) ->
void
153 this->container_->add(t);
Definition container.h:10