state_machine_cpp
layer.h
Go to the documentation of this file.
1 //
2 // Created by henri on 10/11/21.
3 //
4 
5 #ifndef STATE_MACHINE_CPP_LAYER_H
6 #define STATE_MACHINE_CPP_LAYER_H
7 
8 #include "abstract_layer.h"
9 #include <memory>
10 
11 namespace state_machine_cpp {
12  template<class ...> class Layer;
13 }
14 
15 template<class ...Attributes>
16 class state_machine_cpp::Layer : public state_machine_cpp::AbstractLayer, public std::shared_ptr<Attributes>... {
17 
18 public:
19  Layer() = default;
20  Layer(Attributes* ...t_ptr) : std::shared_ptr<Attributes>(t_ptr)... {}
21  Layer(std::shared_ptr<Attributes> ...t_ptr) : std::shared_ptr<Attributes>(t_ptr)... {}
22 };
23 
24 template<>
26 public:
27  Layer() = default;
28  Layer(void*) {}
29 };
30 
31 
32 #endif //STATE_MACHINE_CPP_LAYER_H
state_machine_cpp
Definition: algorithm.h:14
state_machine_cpp::Layer::Layer
Layer(std::shared_ptr< Attributes > ...t_ptr)
Definition: layer.h:21
state_machine_cpp::AbstractLayer
Definition: abstract_layer.h:12
abstract_layer.h
state_machine_cpp::Layer<>::Layer
Layer(void *)
Definition: layer.h:28
state_machine_cpp::Layer::Layer
Layer(Attributes *...t_ptr)
Definition: layer.h:20
state_machine_cpp::Layer
Definition: layer.h:12
state_machine_cpp::Layer::Layer
Layer()=default