} // namespace dlwrap
-#define DLWRAP_INSTANTIATE(SYM_USE, SYM_DEF, ARITY) \
- DLWRAP_INSTANTIATE_##ARITY(SYM_USE, SYM_DEF, \
+#define DLWRAP_INSTANTIATE(SYM_DEF, SYM_USE, ARITY) \
+ DLWRAP_INSTANTIATE_##ARITY(SYM_DEF, SYM_USE, \
dlwrap::trait<decltype(&SYM_USE)>)
#define DLWRAP_FINALIZE_IMPL() \
#define DLWRAP_INTERNAL_IMPL(SYMBOL, ARITY) \
DLWRAP_COMMON(SYMBOL, ARITY); \
- static DLWRAP_INSTANTIATE(SYMBOL, dlwrap_##SYMBOL, ARITY)
+ static DLWRAP_INSTANTIATE(dlwrap_##SYMBOL, SYMBOL, ARITY)
-#define DLWRAP_INSTANTIATE_0(SYM_USE, SYM_DEF, T) \
+#define DLWRAP_INSTANTIATE_0(SYM_DEF, SYM_USE, T) \
T::ReturnType SYM_DEF() { return dlwrap::SYM_USE##_Trait::get()(); }
-#define DLWRAP_INSTANTIATE_1(SYM_USE, SYM_DEF, T) \
+#define DLWRAP_INSTANTIATE_1(SYM_DEF, SYM_USE, T) \
T::ReturnType SYM_DEF(typename T::template arg<0>::type x0) { \
return dlwrap::SYM_USE##_Trait::get()(x0); \
}
-#define DLWRAP_INSTANTIATE_2(SYM_USE, SYM_DEF, T) \
+#define DLWRAP_INSTANTIATE_2(SYM_DEF, SYM_USE, T) \
T::ReturnType SYM_DEF(typename T::template arg<0>::type x0, \
typename T::template arg<1>::type x1) { \
return dlwrap::SYM_USE##_Trait::get()(x0, x1); \
}
-#define DLWRAP_INSTANTIATE_3(SYM_USE, SYM_DEF, T) \
+#define DLWRAP_INSTANTIATE_3(SYM_DEF, SYM_USE, T) \
T::ReturnType SYM_DEF(typename T::template arg<0>::type x0, \
typename T::template arg<1>::type x1, \
typename T::template arg<2>::type x2) { \
return dlwrap::SYM_USE##_Trait::get()(x0, x1, x2); \
}
-#define DLWRAP_INSTANTIATE_4(SYM_USE, SYM_DEF, T) \
+#define DLWRAP_INSTANTIATE_4(SYM_DEF, SYM_USE, T) \
T::ReturnType SYM_DEF(typename T::template arg<0>::type x0, \
typename T::template arg<1>::type x1, \
typename T::template arg<2>::type x2, \
typename T::template arg<3>::type x3) { \
return dlwrap::SYM_USE##_Trait::get()(x0, x1, x2, x3); \
}
-#define DLWRAP_INSTANTIATE_5(SYM_USE, SYM_DEF, T) \
+#define DLWRAP_INSTANTIATE_5(SYM_DEF, SYM_USE, T) \
T::ReturnType SYM_DEF(typename T::template arg<0>::type x0, \
typename T::template arg<1>::type x1, \
typename T::template arg<2>::type x2, \
typename T::template arg<4>::type x4) { \
return dlwrap::SYM_USE##_Trait::get()(x0, x1, x2, x3, x4); \
}
-#define DLWRAP_INSTANTIATE_6(SYM_USE, SYM_DEF, T) \
+#define DLWRAP_INSTANTIATE_6(SYM_DEF, SYM_USE, T) \
T::ReturnType SYM_DEF(typename T::template arg<0>::type x0, \
typename T::template arg<1>::type x1, \
typename T::template arg<2>::type x2, \
return dlwrap::SYM_USE##_Trait::get()(x0, x1, x2, x3, x4, x5); \
}
-#define DLWRAP_INSTANTIATE_7(SYM_USE, SYM_DEF, T) \
+#define DLWRAP_INSTANTIATE_7(SYM_DEF, SYM_USE, T) \
T::ReturnType SYM_DEF(typename T::template arg<0>::type x0, \
typename T::template arg<1>::type x1, \
typename T::template arg<2>::type x2, \
return dlwrap::SYM_USE##_Trait::get()(x0, x1, x2, x3, x4, x5, x6); \
}
-#define DLWRAP_INSTANTIATE_8(SYM_USE, SYM_DEF, T) \
+#define DLWRAP_INSTANTIATE_8(SYM_DEF, SYM_USE, T) \
T::ReturnType SYM_DEF(typename T::template arg<0>::type x0, \
typename T::template arg<1>::type x1, \
typename T::template arg<2>::type x2, \
typename T::template arg<7>::type x7) { \
return dlwrap::SYM_USE##_Trait::get()(x0, x1, x2, x3, x4, x5, x6, x7); \
}
-#define DLWRAP_INSTANTIATE_9(SYM_USE, SYM_DEF, T) \
+#define DLWRAP_INSTANTIATE_9(SYM_DEF, SYM_USE, T) \
T::ReturnType SYM_DEF(typename T::template arg<0>::type x0, \
typename T::template arg<1>::type x1, \
typename T::template arg<2>::type x2, \
typename T::template arg<8>::type x8) { \
return dlwrap::SYM_USE##_Trait::get()(x0, x1, x2, x3, x4, x5, x6, x7, x8); \
}
-#define DLWRAP_INSTANTIATE_10(SYM_USE, SYM_DEF, T) \
+#define DLWRAP_INSTANTIATE_10(SYM_DEF, SYM_USE, T) \
T::ReturnType SYM_DEF(typename T::template arg<0>::type x0, \
typename T::template arg<1>::type x1, \
typename T::template arg<2>::type x2, \
return dlwrap::SYM_USE##_Trait::get()(x0, x1, x2, x3, x4, x5, x6, x7, x8, \
x9); \
}
-#define DLWRAP_INSTANTIATE_11(SYM_USE, SYM_DEF, T) \
+#define DLWRAP_INSTANTIATE_11(SYM_DEF, SYM_USE, T) \
T::ReturnType SYM_DEF(typename T::template arg<0>::type x0, \
typename T::template arg<1>::type x1, \
typename T::template arg<2>::type x2, \