2 Copyright Rene Rivera 2011-2015
3 Distributed under the Boost Software License, Version 1.0.
4 (See accompanying file LICENSE_1_0.txt or copy at
5 http://www.boost.org/LICENSE_1_0.txt)
7 #include <boost/predef.h>
9 #define BOOST_PREDEF_INTERNAL_GENERATE_TESTS
11 void * add_predef_entry(const char * name
, const char * description
, unsigned value
);
12 #undef BOOST_PREDEF_DECLARE_TEST
13 #define BOOST_PREDEF_DECLARE_TEST(x,s) void predef_entry_##x() { add_predef_entry(#x, s, x); }
14 #include <boost/predef.h>
16 #undef BOOST_PREDEF_DECLARE_TEST
17 #define BOOST_PREDEF_DECLARE_TEST(x,s) predef_entry_##x();
18 void create_predef_entries()
20 #include <boost/predef.h>
34 typedef struct predef_info
37 const char * description
;
45 unsigned generated_predef_info_count
= 0;
46 predef_info
* generated_predef_info
= 0;
47 void * add_predef_entry(const char * name
, const char * description
, unsigned value
)
49 if (0 == generated_predef_info_count
)
51 generated_predef_info_count
= 1;
52 generated_predef_info
= (predef_info
*)malloc(sizeof(predef_info
));
56 generated_predef_info_count
+= 1;
57 generated_predef_info
= (predef_info
*)realloc(generated_predef_info
,
58 generated_predef_info_count
*sizeof(predef_info
));
60 generated_predef_info
[generated_predef_info_count
-1].name
= name
;
61 generated_predef_info
[generated_predef_info_count
-1].description
= description
;
62 generated_predef_info
[generated_predef_info_count
-1].value
= value
;
66 int predef_info_compare(const void * a
, const void * b
)
68 const predef_info
* i
= (const predef_info
*)a
;
69 const predef_info
* j
= (const predef_info
*)b
;
70 return strcmp(i
->name
,j
->name
);