24 #ifndef POD_TEMPLATE_STRUCTS_HPP
25 #define POD_TEMPLATE_STRUCTS_HPP
26 #include <graphlab/serialization/serialization_includes.hpp>
27 #include <graphlab/serialization/is_pod.hpp>
31 namespace pod_template_detail {
34 struct pod_call_struct0 :
public IS_POD_TYPE{
35 size_t dispatch_function;
41 template <
typename F,
typename T0>
42 struct pod_call_struct1 :
public IS_POD_TYPE{
43 size_t dispatch_function;
50 template <
typename F,
typename T0,
typename T1>
51 struct pod_call_struct2 :
public IS_POD_TYPE{
52 size_t dispatch_function;
58 template <
typename F,
typename T0,
typename T1,
typename T2>
59 struct pod_call_struct3 :
public IS_POD_TYPE{
60 size_t dispatch_function;
67 template <
typename F,
typename T0,
typename T1,
typename T2,
69 struct pod_call_struct4 :
public IS_POD_TYPE{
70 size_t dispatch_function;
73 T0 t0; T1 t1; T2 t2; T3 t3;
77 template <
typename F,
typename T0,
typename T1,
typename T2,
78 typename T3,
typename T4>
79 struct pod_call_struct5 :
public IS_POD_TYPE{
80 size_t dispatch_function;
83 T0 t0; T1 t1; T2 t2; T3 t3; T4 t4;
87 template <
typename F,
typename T0,
typename T1,
typename T2,
88 typename T3,
typename T4,
typename T5>
89 struct pod_call_struct6 :
public IS_POD_TYPE{
90 size_t dispatch_function;
93 T0 t0; T1 t1; T2 t2; T3 t3; T4 t4; T5 t5;
97 template <
typename F,
typename T0,
typename T1,
typename T2,
98 typename T3,
typename T4,
typename T5,
100 struct pod_call_struct7 :
public IS_POD_TYPE{
101 size_t dispatch_function;
104 T0 t0; T1 t1; T2 t2; T3 t3; T4 t4; T5 t5; T6 t6;
108 template <
typename F,
typename T0,
typename T1,
typename T2,
109 typename T3,
typename T4,
typename T5,
110 typename T6,
typename T7>
111 struct pod_call_struct8 :
public IS_POD_TYPE{
112 size_t dispatch_function;
115 T0 t0; T1 t1; T2 t2; T3 t3; T4 t4; T5 t5; T6 t6; T7 t7;