-
Notifications
You must be signed in to change notification settings - Fork 34
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
base: main
Are you sure you want to change the base?
Conversation
…rted in a module Set STRONG_TYPE_MODULE_EXPORT to empty if not defined
Codecov ReportAll modified and coverable lines are covered by tests ✅
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. |
There was a problem hiding this 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 | ||
* |
There was a problem hiding this comment.
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.
Are you waiting on me to do anything on this and the other PR? |
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. |
No problem I'll just check back every so often |
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
containsThis 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.