21template <
class ReturnType,
class Visitor,
class ... Params >
27 typename std::aligned_storage <
sizeof ( ReturnType ),
alignof ( ReturnType ) >::type result;
47 template <
class Inherit,
size_t ... Indexes >
48 void call (
const Inherit & inherit, std::index_sequence < Indexes ... > ) {
49 new ( & result ) ReturnType (
Visitor::visit ( inherit, std::forward < Params > ( std::get < Indexes > ( m_params ) ) ... ) );
56 template <
class Inherit,
size_t ... Indexes >
57 void call ( Inherit & inherit, std::index_sequence < Indexes ... > ) {
58 new ( & result ) ReturnType (
Visitor::visit ( inherit, std::forward < Params > ( std::get < Indexes > ( m_params ) ) ... ) );
65 template <
class Inherit,
size_t ... Indexes >
66 void call ( Inherit && inherit, std::index_sequence < Indexes ... > ) {
67 new ( & result ) ReturnType (
Visitor::visit ( std::forward < Inherit > ( inherit ), std::forward < Params > ( std::get < Indexes > ( m_params ) ) ... ) );
75 ReturnType
res =
reinterpret_cast < ReturnType &&
> ( result );
90template <
class Visitor,
class ... Params >
111 template <
class Inherit,
size_t ... Indexes >
112 void call (
const Inherit & inherit, std::index_sequence < Indexes ... > ) {
113 Visitor::visit ( inherit, std::forward < Params > ( std::get < Indexes > ( m_params ) ) ... );
120 template <
class Inherit,
size_t ... Indexes >
121 void call ( Inherit & inherit, std::index_sequence < Indexes ... > ) {
122 Visitor::visit ( inherit, std::forward < Params > ( std::get < Indexes > ( m_params ) ) ... );
129 template <
class Inherit,
size_t ... Indexes >
130 void call ( Inherit && inherit, std::index_sequence < Indexes ... > ) {
131 Visitor::visit ( std::forward < Inherit > ( inherit ), std::forward < Params > ( std::get < Indexes > ( m_params ) ) ... );
void call(const Inherit &inherit, std::index_sequence< Indexes ... >)
Call method to the visitors visit method. The actuall class of visited object is already evaluated he...
Definition: visitor.hpp:112
void call(Inherit &inherit, std::index_sequence< Indexes ... >)
Call method to the visitors visit method. The actuall class of visited object is already evaluated he...
Definition: visitor.hpp:121
void call(Inherit &&inherit, std::index_sequence< Indexes ... >)
Call method to the visitors visit method. The actuall class of visited object is already evaluated he...
Definition: visitor.hpp:130
VisitorContextAux(Params &&... params)
Constructor for initialisation of the visitor context, i.e. additional call parameters.
Definition: visitor.hpp:104
void getResult()
Visit result getter.
Definition: visitor.hpp:138
Class implementing an actual visitor interface to the visitor.
Definition: visitor.hpp:22
void call(Inherit &&inherit, std::index_sequence< Indexes ... >)
Call method to the visitors visit method. The actuall class of visited object is already evaluated he...
Definition: visitor.hpp:66
void call(Inherit &inherit, std::index_sequence< Indexes ... >)
Call method to the visitors visit method. The actuall class of visited object is already evaluated he...
Definition: visitor.hpp:57
ReturnType getResult()
Visit result getter.
Definition: visitor.hpp:74
VisitorContextAux(Params &&... params)
Constructor for initialisation of the visitor context, i.e. additional call parameters.
Definition: visitor.hpp:40
void call(const Inherit &inherit, std::index_sequence< Indexes ... >)
Call method to the visitors visit method. The actuall class of visited object is already evaluated he...
Definition: visitor.hpp:48
Class extending the tuple class from the standard library. Original reason is to allow printing of th...
Definition: tuple.hpp:42
return res
Definition: MinimizeByPartitioning.h:145
Definition: normalize.hpp:10
constexpr auto visit(Visitor &&vis, Variants &&... vars)
Definition: variant.hpp:42
Definition: FordFulkerson.hpp:16