Skip to content

Commit

Permalink
Drop Details::AccessTraitsHelper
Browse files Browse the repository at this point in the history
  • Loading branch information
dalg24 committed Dec 28, 2023
1 parent fffb2e0 commit 9551119
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 22 deletions.
18 changes: 4 additions & 14 deletions src/details/ArborX_AccessTraits.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -102,19 +102,6 @@ using AccessTraitsGetArchetypeExpression =
template <typename P>
using PredicateTagArchetypeAlias = typename P::Tag;

template <typename Access>
struct AccessTraitsHelper;

template <typename X, typename Tag>
struct AccessTraitsHelper<AccessTraits<X, Tag>>
{
// Deduce return type of get()
using type =
std::decay_t<Kokkos::detected_t<AccessTraitsGetArchetypeExpression,
AccessTraits<X, Tag>, X>>;
using tag = Kokkos::detected_t<PredicateTagArchetypeAlias, type>;
};

template <typename Predicates>
void check_valid_access_traits(PredicatesTag, Predicates const &)
{
Expand Down Expand Up @@ -148,7 +135,10 @@ void check_valid_access_traits(PredicatesTag, Predicates const &)
"AccessTraits<Predicates,PredicatesTag> must define 'get()' static "
"member function");

using Tag = typename AccessTraitsHelper<Access>::tag;
using Predicate =
std::decay_t<Kokkos::detected_t<AccessTraitsGetArchetypeExpression,
Access, Predicates>>;
using Tag = Kokkos::detected_t<PredicateTagArchetypeAlias, Predicate>;
static_assert(is_valid_predicate_tag<Tag>::value,
"Invalid tag for the predicates");
}
Expand Down
12 changes: 6 additions & 6 deletions src/details/ArborX_Callbacks.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,9 @@ void check_valid_callback(Callback const &callback, Predicates const &,
{
check_generic_lambda_support(callback);

using Access = AccessTraits<Predicates, PredicatesTag>;
using PredicateTag = typename AccessTraitsHelper<Access>::tag;
using Predicate = typename AccessTraitsHelper<Access>::type;
using Predicate =
typename AccessValues<Predicates, PredicatesTag>::value_type;
using PredicateTag = typename Predicate::Tag;

static_assert(!(std::is_same_v<PredicateTag, NearestPredicateTag> &&
std::is_invocable_v<Callback const &, Predicate, int, float,
Expand Down Expand Up @@ -137,9 +137,9 @@ void check_valid_callback(Callback const &callback, Predicates const &)
{
check_generic_lambda_support(callback);

using Access = AccessTraits<Predicates, PredicatesTag>;
using PredicateTag = typename AccessTraitsHelper<Access>::tag;
using Predicate = typename AccessTraitsHelper<Access>::type;
using Predicate =
typename AccessValues<Predicates, PredicatesTag>::value_type;
using PredicateTag = typename Predicate::Tag;

static_assert(is_valid_predicate_tag<PredicateTag>::value,
"The predicate tag is not valid");
Expand Down
4 changes: 2 additions & 2 deletions src/details/ArborX_DetailsLegacy.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ class LegacyValues
KOKKOS_FUNCTION
auto operator()(size_type i) const
{
if constexpr (std::is_same_v<BoundingVolume,
typename AccessTraitsHelper<Access>::type>)
using Primitive = std::decay_t<decltype(Access::get(_primitives, i))>;
if constexpr (std::is_same_v<BoundingVolume, Primitive>)
{
return value_type{Access::get(_primitives, i), (index_type)i};
}
Expand Down

0 comments on commit 9551119

Please sign in to comment.