packages feed

bindings-DSL-1.0: bindings.cmacros.h

/******
 * Copyright © 2008–2009 Maurício C. Antunes
 * This file is distributed under the BSD license.
 * Check LICENSE file in distribution package for
 * details.
******/

#ifndef __BINDINGS_CMACROS_H__
#define __BINDINGS_CMACROS_H__

#define BC_GLOBALARRAY(name,type) \
const type* array_##name () \
{ \
  return name; \
} \

#define BC_INLINE_(name,ret) \
ret inline_##name () \
{ \
  return name; \
} \

#define BC_INLINE_VOID(name) \
void inline_##name () \
{ \
  name; \
} \

#define BC_INLINE1(name,t1,ret) \
ret inline_##name (t1 v1) \
{ \
  return name (v1); \
} \

#define BC_INLINE1VOID(name,t1) \
void inline_##name (t1 v1) \
{ \
  name (v1); \
} \

#define BC_INLINE2(name,t1,t2,ret) \
ret inline_##name (t1 v1,t2 v2) \
{ \
  return name (v1,v2); \
} \

#define BC_INLINE2VOID(name,t1,t2) \
void inline_##name (t1 v1,t2 v2) \
{ \
  name (v1,v2); \
} \

#define BC_INLINE3(name,t1,t2,t3,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3) \
{ \
  return name (v1,v2,v3); \
} \

#define BC_INLINE3VOID(name,t1,t2,t3) \
void inline_##name (t1 v1,t2 v2,t3 v3) \
{ \
  name (v1,v2,v3); \
} \

#define BC_INLINE4(name,t1,t2,t3,t4,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4) \
{ \
  return name (v1,v2,v3,v4); \
} \

#define BC_INLINE4VOID(name,t1,t2,t3,t4) \
void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4) \
{ \
  name (v1,v2,v3,v4); \
} \

#define BC_INLINE5(name,t1,t2,t3,t4,t5,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5) \
{ \
  return name (v1,v2,v3,v4,v5); \
} \

#define BC_INLINE5VOID(name,t1,t2,t3,t4,t5) \
void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5) \
{ \
  name (v1,v2,v3,v4,v5); \
} \

#define BC_INLINE6(name,t1,t2,t3,t4,t5,t6,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6) \
{ \
  return name (v1,v2,v3,v4,v5,v6); \
} \

#define BC_INLINE6VOID(name,t1,t2,t3,t4,t5,t6) \
void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6) \
{ \
  name (v1,v2,v3,v4,v5,v6); \
} \

#define BC_INLINE7(name,t1,t2,t3,t4,t5,t6,t7,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7) \
{ \
  return name (v1,v2,v3,v4,v5,v6,v7); \
} \

#define BC_INLINE7VOID(name,t1,t2,t3,t4,t5,t6,t7) \
void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7) \
{ \
  name (v1,v2,v3,v4,v5,v6,v7); \
} \

#define BC_INLINE8(name,t1,t2,t3,t4,t5,t6,t7,t8,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8) \
{ \
  return name (v1,v2,v3,v4,v5,v6,v7,v8); \
} \

#define BC_INLINE8VOID(name,t1,t2,t3,t4,t5,t6,t7,t8) \
void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8) \
{ \
  name (v1,v2,v3,v4,v5,v6,v7,v8); \
} \

#define BC_INLINE9(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9) \
{ \
  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9); \
} \

#define BC_INLINE9VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9) \
void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9) \
{ \
  name (v1,v2,v3,v4,v5,v6,v7,v8,v9); \
} \

#define BC_INLINE10(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10) \
{ \
  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10); \
} \

#define BC_INLINE10VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) \
void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10) \
{ \
  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10); \
} \

#define BC_INLINE11(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11) \
{ \
  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11); \
} \

#define BC_INLINE11VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11) \
void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11) \
{ \
  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11); \
} \

#define BC_INLINE12(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12) \
{ \
  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12); \
} \

#define BC_INLINE12VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12) \
void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12) \
{ \
  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12); \
} \

#define BC_INLINE13(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13) \
{ \
  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13); \
} \

#define BC_INLINE13VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13) \
void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13) \
{ \
  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13); \
} \

#define BC_INLINE14(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14) \
{ \
  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14); \
} \

#define BC_INLINE14VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14) \
void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14) \
{ \
  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14); \
} \

#define BC_INLINE15(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15) \
{ \
  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15); \
} \

#define BC_INLINE15VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15) \
void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15) \
{ \
  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15); \
} \

#define BC_INLINE16(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16) \
{ \
  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16); \
} \

#define BC_INLINE16VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16) \
void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16) \
{ \
  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16); \
} \

#define BC_INLINE17(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16,t17 v17) \
{ \
  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17); \
} \

#define BC_INLINE17VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17) \
void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16,t17 v17) \
{ \
  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17); \
} \

#define BC_INLINE18(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16,t17 v17,t18 v18) \
{ \
  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18); \
} \

#define BC_INLINE18VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18) \
void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16,t17 v17,t18 v18) \
{ \
  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18); \
} \

#define BC_INLINE19(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16,t17 v17,t18 v18,t19 v19) \
{ \
  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19); \
} \

#define BC_INLINE19VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19) \
void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16,t17 v17,t18 v18,t19 v19) \
{ \
  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19); \
} \

#define BC_INLINE20(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20,ret) \
ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16,t17 v17,t18 v18,t19 v19,t20 v20) \
{ \
  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20); \
} \

#define BC_INLINE20VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20) \
void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16,t17 v17,t18 v18,t19 v19,t20 v20) \
{ \
  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20); \
} \

#endif /* __BINDINGS_CMACROS_H__ */