Ariles
Loading...
Searching...
No Matches
visit_generic_parent.h
Go to the documentation of this file.
1/**
2 @file
3 @author Alexander Sherikov
4 @copyright 2020 Alexander Sherikov, Licensed under the Apache License, Version 2.0.
5 (see @ref LICENSE or http://www.apache.org/licenses/LICENSE-2.0)
6*/
7
8
9#define ARILES2_NAMED_ENTRY_generic_parent(v, entry, name)
10#define ARILES2_PARENT_generic_parent(v, entry) entry::arilesVisit(visitor, parameters);
11
12#define ARILES2_VISIT_generic_parent \
13 template <class t_Visitor, typename = ariles2::traits::is_visitor_t<t_Visitor>> \
14 void arilesVisitParents(t_Visitor &visitor, const typename t_Visitor::Parameters &parameters) \
15 { \
16 static_assert( \
17 std::is_base_of_v<ariles2::Ariles, typename std::decay<decltype(*this)>::type>, \
18 "Class where ARILES2_INITIALIZE is included must inherit from an ariles class."); \
19 CPPUT_UNUSED_ARG(visitor); \
20 CPPUT_UNUSED_ARG(parameters); \
21 CPPUT_TRACE_FUNCTION; \
22 ARILES2_ENTRIES(generic_parent) \
23 } \
24 template <class t_Visitor, typename = ariles2::traits::is_visitor_t<t_Visitor>> \
25 void arilesVisitParents(t_Visitor &visitor, const typename t_Visitor::Parameters &parameters) const \
26 { \
27 CPPUT_UNUSED_ARG(visitor); \
28 CPPUT_UNUSED_ARG(parameters); \
29 CPPUT_TRACE_FUNCTION; \
30 ARILES2_ENTRIES(generic_parent) \
31 }