5 #ifndef V8_BASE_EXPORT_TEMPLATE_H_ 6 #define V8_BASE_EXPORT_TEMPLATE_H_ 61 #define EXPORT_TEMPLATE_DECLARE(export) \ 62 EXPORT_TEMPLATE_INVOKE(DECLARE, EXPORT_TEMPLATE_STYLE(export, ), export) 63 #define EXPORT_TEMPLATE_DEFINE(export) \ 64 EXPORT_TEMPLATE_INVOKE(DEFINE, EXPORT_TEMPLATE_STYLE(export, ), export) 72 #define EXPORT_TEMPLATE_INVOKE(which, style, export) \ 73 EXPORT_TEMPLATE_INVOKE_2(which, style, export) 74 #define EXPORT_TEMPLATE_INVOKE_2(which, style, export) \ 75 EXPORT_TEMPLATE_##which##_##style(export, ) 78 #define EXPORT_TEMPLATE_DECLARE_DEFAULT(export, _) export 79 #define EXPORT_TEMPLATE_DEFINE_DEFAULT(export, _) 84 #define EXPORT_TEMPLATE_DECLARE_MSVC_HACK(export, _) 85 #define EXPORT_TEMPLATE_DEFINE_MSVC_HACK(export, _) export 102 #define EXPORT_TEMPLATE_STYLE(export, _) EXPORT_TEMPLATE_STYLE_2(export, ) 103 #define EXPORT_TEMPLATE_STYLE_2(export, _) \ 104 EXPORT_TEMPLATE_STYLE_3( \ 105 EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA##export) 106 #define EXPORT_TEMPLATE_STYLE_3(style) style 115 #define EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA DEFAULT 116 #define EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA__attribute__(...) \ 118 #define EXPORT_TEMPLATE_STYLE_MATCH_foj3FJo5StF0OvIzl7oMxA__declspec(arg) \ 119 EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_##arg 122 #define EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllexport MSVC_HACK 123 #define EXPORT_TEMPLATE_STYLE_MATCH_DECLSPEC_dllimport DEFAULT 147 #define EXPORT_TEMPLATE_TEST(want, export) \ 148 static_assert(EXPORT_TEMPLATE_INVOKE( \ 149 TEST_##want, EXPORT_TEMPLATE_STYLE(export, ), export), \ 151 #define EXPORT_TEMPLATE_TEST_DEFAULT_DEFAULT(...) true 152 #define EXPORT_TEMPLATE_TEST_MSVC_HACK_MSVC_HACK(...) true 154 EXPORT_TEMPLATE_TEST(DEFAULT, );
155 EXPORT_TEMPLATE_TEST(DEFAULT, __attribute__((visibility(
"default"))));
156 EXPORT_TEMPLATE_TEST(MSVC_HACK, __declspec(dllexport));
157 EXPORT_TEMPLATE_TEST(DEFAULT, __declspec(dllimport));
159 #undef EXPORT_TEMPLATE_TEST 160 #undef EXPORT_TEMPLATE_TEST_DEFAULT_DEFAULT 161 #undef EXPORT_TEMPLATE_TEST_MSVC_HACK_MSVC_HACK 163 #endif // V8_BASE_EXPORT_TEMPLATE_H_