-
Notifications
You must be signed in to change notification settings - Fork 81
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
[FIX] visibility errors on gcc #1228
Conversation
bc1fc5f
to
62440e9
Compare
Codecov Report
@@ Coverage Diff @@
## master #1228 +/- ##
=======================================
Coverage 97.37% 97.37%
=======================================
Files 221 221
Lines 8928 8928
=======================================
Hits 8694 8694
Misses 234 234
Continue to review full report at Codecov.
|
62440e9
to
2e9dbbd
Compare
@smehringer Can you have a look? Thank you <3 |
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.
Some questions
@@ -78,7 +78,7 @@ void to_rank(args_t ...) = delete; | |||
//!\brief Functor definition for seqan3::to_rank. | |||
struct to_rank_fn | |||
{ | |||
private: | |||
public: |
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.
why do the impl function need to be public? As I understand it, they are only used by the operator()
?
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.
Because the require statement in gcc only allows public statements; clang on the other hand allows this code.
Not sure if this is a bug/workaround, but @h-2 said that I should not bother, because it is detail
anyway.
@@ -495,7 +495,7 @@ class argument_parser | |||
*/ | |||
argument_parser_meta_data info; | |||
|
|||
private: | |||
protected: |
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 thought we want to befriend a test fixture?
(any way you forgot the //!\privatesection
)
…e complete library.
Alphabet tuple base has private/protected constructors, so we can't define the comparsion operators as copy-by-value, since they can't be constructed.
…terator_base (visibility problems)
2e9dbbd
to
590eb4a
Compare
This PR fixes a variant of a visibility bug of gcc.
Apparently, if you use the short-notation for concepts in templates, like this,
all private/protected members of classes are accessible.
Currently blocked by #1222 and #1225