Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Examples  

arglst.H

Go to the documentation of this file.
00001 
00014 #ifndef _ARGLST_H
00015 #define _ARGLST_H
00016 
00017 #include <cstdarg>
00018 
00019 namespace xchen
00020 {
00025 #define get_reverse_ints_va(int_args, argc)         \
00026     {                                               \
00027       (int_args)[(argc)-1] = arg1;                  \
00028       if((argc) > 1)                                \
00029       {                                             \
00030         va_list ap; va_start(ap, arg1);             \
00031         for(int i=1; i<(argc); i++)                 \
00032           (int_args)[(argc)-1-i]= va_arg(ap, int);  \
00033         va_end(ap);                                 \
00034       }                                             \
00035     } 
00036 
00041 #define get_reverse_doubles_va(double_args, argc)         \
00042     {                                                     \
00043       (double_args)[(argc)-1] = arg1;                     \
00044       if((argc) > 1)                                      \
00045       {                                                   \
00046         va_list ap; va_start(ap, arg1);                   \
00047         for(double i=1; i<(argc); i++)                    \
00048           (double_args)[(argc)-1-i]= va_arg(ap, double);  \
00049         va_end(ap);                                       \
00050       }                                                   \
00051     } 
00052 
00053 
00058 #define get_ints_va(int_args, argc)                 \
00059     {                                               \
00060       (int_args)[0] = arg1;                         \
00061       if((argc) > 1)                                \
00062       {                                             \
00063         va_list ap; va_start(ap, arg1);             \
00064         for(int i=1; i<(argc); i++)                 \
00065           (int_args)[i]= va_arg(ap, int);           \
00066         va_end(ap);                                 \
00067       }                                             \
00068     } 
00069 
00070 
00071 
00076 #define get_doubles_va(double_args, argc)           \
00077     {                                               \
00078       (double_args)[0] = arg1;                      \
00079       if((argc) > 1)                                \
00080       {                                             \
00081         va_list ap; va_start(ap, arg1);             \
00082         for(double i=1; i<(argc); i++)              \
00083           (double_args)[i]= va_arg(ap, double);     \
00084         va_end(ap);                                 \
00085       }                                             \
00086     } 
00087 
00088 
00089 
00090 }//end namespace xchen
00091 
00092 
00093 
00094 #endif

Generated on Wed Apr 7 21:40:48 2004 by doxygen1.2.18