@@ -365,6 +365,11 @@ typedef __char32_t char32_t;
365365# define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS
366366# define _LIBCPP_OVERRIDABLE_FUNC_VIS
367367# define _LIBCPP_EXPORTED_FROM_ABI
368+ # if defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) || !__has_attribute(exclude_from_explicit_instantiation)
369+ # define _LIBCPP_INNER_CLASS_IN_TEMPLATE_VIS
370+ # else
371+ # define _LIBCPP_INNER_CLASS_IN_TEMPLATE_VIS __attribute__ ((__exclude_from_explicit_instantiation__))
372+ # endif
368373# elif defined(_LIBCPP_BUILDING_LIBRARY)
369374# if defined(__MINGW32__)
370375# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __declspec (dllexport)
@@ -375,11 +380,13 @@ typedef __char32_t char32_t;
375380# endif
376381# define _LIBCPP_OVERRIDABLE_FUNC_VIS __declspec (dllexport)
377382# define _LIBCPP_EXPORTED_FROM_ABI __declspec (dllexport)
383+ # define _LIBCPP_INNER_CLASS_IN_TEMPLATE_VIS
378384# else
379385# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __declspec (dllimport)
380386# define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS
381387# define _LIBCPP_OVERRIDABLE_FUNC_VIS
382388# define _LIBCPP_EXPORTED_FROM_ABI __declspec (dllimport)
389+ # define _LIBCPP_INNER_CLASS_IN_TEMPLATE_VIS
383390# endif
384391
385392# define _LIBCPP_HIDDEN
@@ -399,6 +406,7 @@ typedef __char32_t char32_t;
399406# define _LIBCPP_EXPORTED_FROM_ABI _LIBCPP_VISIBILITY (" default" )
400407# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS _LIBCPP_VISIBILITY (" default" )
401408# define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS
409+ # define _LIBCPP_INNER_CLASS_IN_TEMPLATE_VIS
402410
403411// TODO: Make this a proper customization point or remove the option to override it.
404412# ifndef _LIBCPP_OVERRIDABLE_FUNC_VIS
0 commit comments