]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Interface/Macros.h
...
[cpPlugins.git] / lib / cpPlugins / Interface / Macros.h
1 #ifndef __CPPLUGINS__INTERFACE__MACROS__H__
2 #define __CPPLUGINS__INTERFACE__MACROS__H__
3
4 #include <cpPlugins/Interface/cpPlugins_Interface_Export.h>
5
6 /**
7  * Based upon: http://www.itk.org/Wiki/Proposals:Explicit_Instantiation
8  */
9
10 // -------------------------------------------------------------------------
11 #define cpPlugins_TEMPLATE_1( X1 )              \
12   X1
13 #define cpPlugins_TEMPLATE_2( X1, X2 )          \
14   X1,X2
15 #define cpPlugins_TEMPLATE_3( X1, X2, X3 )      \
16   X1,X2,X3
17 #define cpPlugins_TEMPLATE_4( X1, X2, X3, X4 )  \
18   X1,X2,X3,X4
19 #define cpPlugins_TEMPLATE_5( X1, X2, X3, X4, X5 )      \
20   X1,X2,X3,X4,X5
21 #define cpPlugins_TEMPLATE_6( X1, X2, X3, X4, X5, X6 )  \
22   X1,X2,X3,X4,X5,X6
23 #define cpPlugins_TEMPLATE_7( X1, X2, X3, X4, X5, X6, X7 )      \
24   X1,X2,X3,X4,X5,X6,X7
25 #define cpPlugins_TEMPLATE_8( X1, X2, X3, X4, X5, X6, X7, X8 )  \
26   X1,X2,X3,X4,X5,X6,X7,X8
27 #define cpPlugins_TEMPLATE_9( X1, X2, X3, X4, X5, X6, X7, X8, X9 )      \
28   X1,X2,X3,X4,X5,X6,X7,X8,X9
29   
30 #define cpPlugins_TEMPLATE_EXPORT( X )          \
31   template cpPlugins_TEMPLATE_##X;
32 #define cpPlugins_TEMPLATE_IMPORT( X )          \
33   extern template cpPlugins_TEMPLATE_##X;
34
35 #endif // __CPPLUGINS__INTERFACE__MACROS__H__
36
37 // eof - $RCSfile$