Update example
This commit is contained in:
1 parent
52724eaa10
commit
686cb7de8a
1 file changed
+12
-8
+12
-8
@@ -11,29 +11,33 @@
|
|||||||
VARIANT_DEF2(integer,
|
VARIANT_DEF2(integer,
|
||||||
(n, long long, M_DEFAULT_OPLIST),
|
(n, long long, M_DEFAULT_OPLIST),
|
||||||
(z, mpz_t, M_CLASSIC_OPLIST(mpz)))
|
(z, mpz_t, M_CLASSIC_OPLIST(mpz)))
|
||||||
|
/* Define the oplist associated to this variant */
|
||||||
#define INTEGER_OPLIST VARIANT_OPLIST(integer, M_DEFAULT_OPLIST, M_CLASSIC_OPLIST(mpz))
|
#define INTEGER_OPLIST VARIANT_OPLIST(integer, M_DEFAULT_OPLIST, M_CLASSIC_OPLIST(mpz))
|
||||||
|
|
||||||
/* Define a dictionary of string --> integer named dict_my_t */
|
/* Define a dictionary of string --> integer named dict_my_t */
|
||||||
DICT_DEF2(my,
|
DICT_DEF2(my,
|
||||||
string_t, STRING_OPLIST,
|
string_t, STRING_OPLIST,
|
||||||
integer_t, INTEGER_OPLIST)
|
integer_t, INTEGER_OPLIST)
|
||||||
|
/* Define the oplist associated to this dictionary */
|
||||||
#define MY_DICT_OPLIST DICT_OPLIST(my, STRING_OPLIST, INTEGER_OPLIST)
|
#define MY_DICT_OPLIST DICT_OPLIST(my, STRING_OPLIST, INTEGER_OPLIST)
|
||||||
|
|
||||||
/* Define an array of such dictionary named array_my_t */
|
/* Define an array of such dictionary named array_my_t */
|
||||||
ARRAY_DEF(my, dict_my_t, MY_DICT_OPLIST)
|
ARRAY_DEF(my, dict_my_t, MY_DICT_OPLIST)
|
||||||
|
/* Define the oplist associated to this array of dictionary of variant */
|
||||||
#define MY_ARRAY_OPLIST ARRAY_OPLIST(my, MY_DICT_OPLIST)
|
#define MY_ARRAY_OPLIST ARRAY_OPLIST(my, MY_DICT_OPLIST)
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
M_LET(z, INTEGER_OPLIST)
|
M_LET(z, INTEGER_OPLIST) /* Define & init & clear a variant of integer */
|
||||||
M_LET(dict, MY_DICT_OPLIST)
|
M_LET(dict, MY_DICT_OPLIST) /* Define & init & clear a dictionary of variant */
|
||||||
M_LET(array, MY_ARRAY_OPLIST)
|
M_LET(array, MY_ARRAY_OPLIST) /* Define & init & clear an array of dictionary of variant */
|
||||||
|
M_LET(gmp, M_CLASSIC_OPLIST(mpz)) /* M_LET allows even with non container type */
|
||||||
{
|
{
|
||||||
mpz_t gmp;
|
integer_set_n (z, 17LL); // Set z as the long long 17
|
||||||
mpz_init_set_str(gmp, "25446846874687468746874687468746874686874", 10);
|
dict_my_set_at(dict, STRING_CTE("n1"), z);
|
||||||
|
mpz_set_str(gmp, "25446846874687468746874687468746874686874", 10);
|
||||||
integer_set_z (z, gmp); // Since we didn't define MOVE operators for mpz_t, we can't use integer_move_z
|
integer_set_z (z, gmp); // Since we didn't define MOVE operators for mpz_t, we can't use integer_move_z
|
||||||
mpz_clear(gmp);
|
dict_my_set_at(dict, STRING_CTE("n2"), z);
|
||||||
dict_my_set_at(dict, STRING_CTE("n"), z);
|
|
||||||
array_my_push_back (array, dict);
|
array_my_push_back (array, dict);
|
||||||
}
|
} /* All variables are automaticaly cleared beyond this point */
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user