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
CTAD Deduction guides for TeamPolicy v2 #6117
base: develop
Are you sure you want to change the base?
Conversation
ddafb16
to
8c9f00a
Compare
In order to get around various compiler bugs with regards to deduction guides, the following changes were made to Introduction of Before:
In the partial specialization of Initially, when the constructors were moved from For some compilers, an inline static variable isn't considered as used when only in an unevaluated context (as they are in the compile time tests), so they are now marked as |
retest this please |
25e2e0d
to
7ee8129
Compare
6f5e550
to
f227da4
Compare
7c9afe9
to
e10abac
Compare
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 initial comments
a forward declaration requiring at least one (defaulted) template parameter and two partial specializations TeamPolicy<P> and TeamPolicy<P1, P2, Properties...>.
TestTeamPolicyConstructors to avoid internal linkage problems with various compilers and compile time tests
Added some static_asserts enforcing TeamPolicyCommon usage assumptions
Added some comments
parameters to see if this fixes the issue with icpc and OPENMP builds
it under COMPILE_ONLY_SOURCES
in TestTeamPolicyCTAD, as they are never referenced outside of unevaluated contexts.
into TeamPolicy, as TeamPolicyCommon is not an execution policy. Added the private typedef "team_policy" for use inside TeamPolicyCommon.
ImplicitlyConvertibleToDefaultExecutionSpace::operator Kokkos::DefaultExecutionSpace" was declared but never referenced because it is only referenced in unevaluated contexts. Marking it as [[maybe_unused]]
…d]] on ImplicitlyConvertibleToDefaultExecutionSpace::operator Kokkos::DefaultExecutionSpace() const by defining it and implicitly calling it in another [[maybe_unused]] static inline variable.
doxygen syntax
e10abac
to
208c778
Compare
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 with me.
Seeing if adding an
Impl::TeamPolicyCommon
betweenTeamPolicy
andImpl::TeamPolicyInternal
will get around the compiler ICEing bugs.