basix_doc 0.1
/Users/mourrain/Devel/mmx/basix/glue/glue_table_generic.cpp
Go to the documentation of this file.
00001 
00002 #include <basix/table.hpp>
00003 #include <basix/alias.hpp>
00004 #include <basix/tuple.hpp>
00005 #include <basix/glue.hpp>
00006 
00007 namespace mmx {
00008   static bool
00009   GLUE_1 (const generic &arg_1) {
00010     return is_table (arg_1);
00011   }
00012   
00013   static table<generic, generic>
00014   GLUE_2 (const generic &arg_1) {
00015     return table<generic, generic > (arg_1);
00016   }
00017   
00018   static iterator<generic>
00019   GLUE_3 (const table<generic, generic> &arg_1) {
00020     return entries (arg_1);
00021   }
00022   
00023   static int
00024   GLUE_4 (const table<generic, generic> &arg_1) {
00025     return N (arg_1);
00026   }
00027   
00028   static bool
00029   GLUE_5 (const table<generic, generic> &arg_1, const generic &arg_2) {
00030     return contains (arg_1, arg_2);
00031   }
00032   
00033   static generic
00034   GLUE_6 (const table<generic, generic> &arg_1, const generic &arg_2) {
00035     return arg_1[arg_2];
00036   }
00037   
00038   static alias<generic>
00039   GLUE_7 (const alias<table<generic, generic> > &arg_1, const generic &arg_2) {
00040     return alias_access<generic > (arg_1, arg_2);
00041   }
00042   
00043   static void
00044   GLUE_8 (const alias<table<generic, generic> > &arg_1, const generic &arg_2) {
00045     alias_reset (arg_1, arg_2);
00046   }
00047   
00048   static void
00049   GLUE_9 (const table<generic, generic> &arg_1, const generic &arg_2, const generic &arg_3) {
00050     inside_set (arg_1, arg_2, arg_3);
00051   }
00052   
00053   static bool
00054   GLUE_10 (const table<generic, generic> &arg_1, const tuple<generic> &arg_2) {
00055     return contains (arg_1, as_vector (arg_2));
00056   }
00057   
00058   static generic
00059   GLUE_11 (const table<generic, generic> &arg_1, const tuple<generic> &arg_2) {
00060     return arg_1[as_vector (arg_2)];
00061   }
00062   
00063   static alias<generic>
00064   GLUE_12 (const alias<table<generic, generic> > &arg_1, const tuple<generic> &arg_2) {
00065     return alias_access<generic > (arg_1, as_vector (arg_2));
00066   }
00067   
00068   static void
00069   GLUE_13 (const alias<table<generic, generic> > &arg_1, const tuple<generic> &arg_2) {
00070     alias_reset (arg_1, as_vector (arg_2));
00071   }
00072   
00073   static void
00074   GLUE_14 (const table<generic, generic> &arg_1, const tuple<generic> &arg_2, const generic &arg_3) {
00075     inside_set (arg_1, as_vector (arg_2), arg_3);
00076   }
00077   
00078   void
00079   glue_table_generic () {
00080     static bool done = false;
00081     if (done) return;
00082     done = true;
00083     call_glue (string ("glue_generic"));
00084     define_type<table<generic, generic> > (gen (lit ("Table"), lit ("Generic"), lit ("Generic")));
00085     define ("table?", GLUE_1);
00086     define ("table", GLUE_2);
00087     define_converter (":>", GLUE_3, PENALTY_PROMOTE_GENERIC);
00088     define ("#", GLUE_4);
00089     define ("contains?", GLUE_5);
00090     define (".[]", GLUE_6);
00091     define (".[]", GLUE_7);
00092     define ("reset", GLUE_8);
00093     define ("set", GLUE_9);
00094     define ("contains?", GLUE_10);
00095     define (".[]", GLUE_11);
00096     define (".[]", GLUE_12);
00097     define ("reset", GLUE_13);
00098     define ("set", GLUE_14);
00099   }
00100 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines