#include // serialization of string #include // serialization of pair #include // std::vector #include #include #include "foo.hxx" #include "codegen_common.hxx" LIBT2N_SET_DEFAULTGROUP(default); //! test pass by copy LIBT2N_EXPORT std::string testfunc(std::string str) { std::string ret; if (str=="throw") throw libt2n::t2n_runtime_error("throw me around"); if (str=="big") ret.insert(0,100*1024,'x'); else ret=str+", testfunc() was here"; return ret; } //! test pass by const reference LIBT2N_EXPORT std::string testfunc_ref(const std::string &str) { std::string ret; if (str=="throw") throw libt2n::t2n_runtime_error("throw me around"); if (str=="big") ret.insert(0,100*1024,'x'); else ret=str+", testfunc() was here"; return ret; } //! test builtin type LIBT2N_EXPORT int t2(int i) { return i; } using namespace std; //! test pair, multiple arguments and namespace LIBT2N_EXPORT_GROUP(other) bool t3(int i, float f, const string &s, const pair &p) { return (i==p.first) && (f==p.second) && (s=="hello"); } //! test function overload LIBT2N_EXPORT_GROUP(other) int t3(int i) { return i; } //! test std::vector LIBT2N_EXPORT_GROUP(other) bool t3(const std::vector &i) { return (i.size()==1) && (i[0]==10); } //! test own type and seperate declaration and definition LIBT2N_EXPORT_GROUP(other) bool t3(const Foo &foo);