Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

davidhunter22
Copy link
Contributor

@davidhunter22 davidhunter22 commented Sep 4, 2024

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.

…rted in a module

Set STRONG_TYPE_MODULE_EXPORT to empty if not defined
@davidhunter22 davidhunter22 changed the title Add the STRONG_TYPE_MODULE_EXPORT to all entities that should be exported Add the STRONG_TYPE_MODULE_EXPORT to all entities that should be exported, aka strong_type module part 1 Sep 4, 2024
Copy link

codecov bot commented Sep 7, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 100.00%. Comparing base (d6be4b9) to head (0576a60).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #48   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           23        23           
  Lines          338       356   +18     
=========================================
+ Hits           338       356   +18     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Owner

@rollbear rollbear left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! I'll see what I can do about adding CI support to ensure it is (and stays) OK.

This will probably take a week, though, since I'm now fully in going-to-conference mode.

* strong_type C++14/17/20 strong typedef library
*
* Copyright (C) Björn Fahller
*
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't mind if you added your own name here. It's a substantial contribution.

@davidhunter22
Copy link
Contributor Author

Are you waiting on me to do anything on this and the other PR?

@rollbear
Copy link
Owner

rollbear commented Nov 7, 2024

No, sorry, I got stuck on a ton of other things. It is not impossible that I will ask for your assistance, but for the moment I'm a bit swamped with other things.

@davidhunter22
Copy link
Contributor Author

No problem I'll just check back every so often

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants