X-Git-Url: http://developer.intra2net.com/git/?p=libt2n;a=blobdiff_plain;f=codegen%2Fcodegen-stubhead.hxx;h=171d3990f6c5166401cbb274f4ced5404bbb34b6;hp=64d3d5b5d9c2932a31117772ec3d5b2297e8dfd5;hb=15980b02dac194a6f0dddce9c1750d914d97aa71;hpb=d340d435f156ae23b7d285c6e3abd59b019a5363 diff --git a/codegen/codegen-stubhead.hxx b/codegen/codegen-stubhead.hxx index 64d3d5b..171d399 100644 --- a/codegen/codegen-stubhead.hxx +++ b/codegen/codegen-stubhead.hxx @@ -12,9 +12,41 @@ #include #ifdef __GCCXML__ +// used during parsing run with gccxml + +/** @brief mark a function to export it via libt2n + @par Example + @code + LIBT2N_EXPORT std::string testfunc(const std::string &str) + { + // your code here + } + @endcode +*/ #define LIBT2N_EXPORT __attribute((gccxml("libt2n-default"))) + + +/** @brief tell libt2n about a default argument + @param type type of the default argument + @param value default value + @par Example + @code + LIBT2N_EXPORT std::string testfunc(LIBT2N_DEFAULT_ARG(const std::string str&,"hello world")) + { + // your code here + } + @endcode + @remarks Codegen gets default arguments via this define (gccxml-attribute) because gccxml + does not correctly output them (e.g. the namespace is ambiguous) +*/ +#define LIBT2N_DEFAULT_ARG(type,value) __attribute((gccxml("libt2n-default-arg",#value))) type = value + #else +// used during regular compile + #define LIBT2N_EXPORT +#define LIBT2N_DEFAULT_ARG(type,value) type = value + #endif #endif