diff options
Diffstat (limited to 'boost/predef/detail/test_def.h')
-rw-r--r-- | boost/predef/detail/test_def.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/boost/predef/detail/test_def.h b/boost/predef/detail/test_def.h new file mode 100644 index 0000000000..c2f195bfd6 --- /dev/null +++ b/boost/predef/detail/test_def.h @@ -0,0 +1,71 @@ +/* +Copyright Rene Rivera 2011-2015 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ +#include <boost/predef.h> + +#define BOOST_PREDEF_INTERNAL_GENERATE_TESTS + +void * add_predef_entry(const char * name, const char * description, unsigned value); +#undef BOOST_PREDEF_DECLARE_TEST +#define BOOST_PREDEF_DECLARE_TEST(x,s) void predef_entry_##x() { add_predef_entry(#x, s, x); } +#include <boost/predef.h> + +#undef BOOST_PREDEF_DECLARE_TEST +#define BOOST_PREDEF_DECLARE_TEST(x,s) predef_entry_##x(); +void create_predef_entries() +{ +#include <boost/predef.h> +} + +#ifdef __cplusplus +#include <cstring> +#include <cstdio> +#include <cstdlib> +using namespace std; +#else +#include <string.h> +#include <stdio.h> +#include <stdlib.h> +#endif + +typedef struct predef_info +{ + const char * name; + const char * description; + unsigned value; +} predef_info; + +#ifdef __cplusplus +using namespace std; +#endif + +unsigned generated_predef_info_count = 0; +predef_info* generated_predef_info = 0; +void * add_predef_entry(const char * name, const char * description, unsigned value) +{ + if (0 == generated_predef_info_count) + { + generated_predef_info_count = 1; + generated_predef_info = (predef_info*)malloc(sizeof(predef_info)); + } + else + { + generated_predef_info_count += 1; + generated_predef_info = (predef_info*)realloc(generated_predef_info, + generated_predef_info_count*sizeof(predef_info)); + } + generated_predef_info[generated_predef_info_count-1].name = name; + generated_predef_info[generated_predef_info_count-1].description = description; + generated_predef_info[generated_predef_info_count-1].value = value; + return 0; +} + +int predef_info_compare(const void * a, const void * b) +{ + const predef_info * i = (const predef_info *)a; + const predef_info * j = (const predef_info *)b; + return strcmp(i->name,j->name); +} |