Skip to content

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

Open
davidhunter22 wants to merge 1 commit into
rollbear:mainfrom
davidhunter22:module_export_macro
Open

Add the STRONG_TYPE_MODULE_EXPORT to all entities that should be exported, aka strong_type module part 1#48
davidhunter22 wants to merge 1 commit into
rollbear:mainfrom
davidhunter22:module_export_macro

Conversation

@davidhunter22

@davidhunter22 davidhunter22 commented Sep 4, 2024

Copy link
Copy Markdown
Contributor

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
@codecov

codecov Bot commented Sep 7, 2024

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (d6be4b9) to head (0576a60).
⚠️ Report is 9 commits behind head on main.

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 Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@rollbear rollbear left a comment

Copy link
Copy Markdown
Owner

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
Copy Markdown
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
Copy Markdown
Contributor Author

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

@rollbear

rollbear commented Nov 7, 2024

Copy link
Copy Markdown
Owner

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
Copy Markdown
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