strong_type icon indicating copy to clipboard operation
strong_type copied to clipboard

Add the STRONG_TYPE_MODULE_EXPORT to all entities that should be exported, aka strong_type module part 1

Open davidhunter22 opened this issue 5 months ago • 1 comments

Add a macro STRONG_TYPE_MODULE_EXPORT. This at some point will expand to export in a module build and empty in a non module build. Only entities in the strong_type namespace were decorated, anything in "impl", "detail" etc... namespaces were not, although see below.

The header file type.hpp contains

#if !defined(STRONG_TYPE_MODULE_EXPORT)
#define STRONG_TYPE_MODULE_EXPORT
#endif

This allows existing include users to carry on including without any changes

There should be no other changed in this patch. In my local build I have built a module and built all the test cases against it, at least on MSVC. In doing this there were two methods called access in the type.hpp header that are used in the implementation of other exported stuff so they had to be exported.

I included the strong_type.ixx file just for you interest, it will probably change a bit from this. I believe that all the other changes in the library header files are messing around with #include stuff by macroing them in or out as necessary.

These changes should not overlap at all with the import std; pull request so could be applied in either order.

davidhunter22 avatar Sep 04 '24 18:09 davidhunter22