-
Notifications
You must be signed in to change notification settings - Fork 82
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
Create a version of pipeable_config_element without value #1871
Conversation
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.
Thank you!
I would suggest to invert the default, so you don't need to adjust all existing configurations.
I think this must go back to the drawing board, because it will not work as intended: The main problem is that we all assumed that an empty base class must not be explicitly brace initialised. The main problem is that the memory order is always The exception to the rule would be designated intialisers We can't keep this an aggregate type if we want to keep the base class approach.
|
Are you discussing this today in the core meeting? Please let me know if there is a decision and then I can implement it accordingly. |
Core-Meeting 2020-06-08: Configs will add constructors for their members |
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.
These were the changes that we wanted and were decided in the meeting. Thank you so much!
Rebased on master. |
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.
Somewhere the docs reference the now missing value
; thats why documentation is still failing
Travis says: seqan3/include/seqan3/core/type_list/traits.hpp:40: /*!\brief Implementation for seqan3::pack_traits::find_if.
* \tparam pred_t The predicate that is being evaluated.
* \tparam pack_t The type pack.
* \returns The position of the first type `t` in `pack_t` for whom `pred_t<t>::value` is true.
* \ingroup type_list
*/ It seems that Let's look in the docs: https://docs.seqan.de/seqan/3-master-dev/group__type__list.html#ga5246fc497be7a3b38e42b804f35bcd7e Indeed 😆 Not sure how to escape this class member name with doxygen. |
|
Thank you pointing this out! I'm going to fix it. |
I could fix the documentation with the |
Thanks for checking the docs 👍 Jenkins fail is unrelated. |
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.
Thanks for working on this. Looks good. Some suggestion and one addition I would like to have.
@@ -38,7 +38,7 @@ constexpr ptrdiff_t find() | |||
/*!\brief Implementation for seqan3::pack_traits::find_if. | |||
* \tparam pred_t The predicate that is being evaluated. | |||
* \tparam pack_t The type pack. | |||
* \returns The position of the first type `t` in `pack_t` for whom `pred_t<t>::value` is true. | |||
* \returns The position of the first type `t` in `pack_t` for whom ``pred_t<t>::%value`` is true. |
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.
* \returns The position of the first type `t` in `pack_t` for whom ``pred_t<t>::%value`` is true. | |
* \returns The position of the first type `t` in `pack_t` for whom `pred_t<t>\::value` is true. |
?
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.
No sorry, this gives a warning:
seqan3/include/seqan3/core/type_list/traits.hpp:40: warning: explicit link request to 'value' could not be resolved
I keep the double backticks and percent sign, because the output is good and there are no warnings.
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.
Ok
@@ -57,19 +57,14 @@ class config_element_base; | |||
/*!\var id | |||
* \brief Algorithm specific static id used for internal validation checks. | |||
*/ | |||
/*!\var value | |||
* \brief Member storing the configuration value. | |||
*/ | |||
//!\} | |||
//!\cond | |||
template <typename config_t> | |||
SEQAN3_CONCEPT config_element = std::semiregular<std::remove_reference_t<config_t>> && |
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.
can you make a new commit and rename this to config_element_specialisation
. We decided to call concepts that repesent a type specialisation so where we would ask for is_type_specialisation_of with the suffix _specialisation
To avoid clashes with the actual type defintion.
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.
Sure!
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.
Looks good. Thank you.
In this way we can introduce alternative config variables and simply remove the
true
template argument when it's done.Discussed in the meeting on 2nd June.