Skip to content

Commit 0b33fff

Browse files
committed
Fixes for newer Clang versions
1 parent 1141a34 commit 0b33fff

2 files changed

Lines changed: 8 additions & 9 deletions

File tree

‎include/gridtools/common/hymap.hpp‎

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ namespace gridtools {
198198
template <class...>
199199
struct values;
200200

201-
#if !defined(__NVCC__) && defined(__clang__) && __clang_major__ <= 17
201+
#if !defined(__NVCC__) && defined(__clang__)
202202
template <class... Vs>
203203
values(Vs const &...) -> values<Vs...>;
204204
#endif
@@ -213,16 +213,18 @@ namespace gridtools {
213213
template <class... Keys>
214214
template <class... Vals>
215215
struct keys<Keys...>::values {
216+
#if !defined(__clang__) || __clang_major__ < 18
216217
static_assert(sizeof...(Vals) == sizeof...(Keys), "invalid hymap");
218+
#endif
217219

218220
tuple<Vals...> m_vals;
219221

220222
template <class... Args,
221-
std::enable_if_t<std::conjunction_v<std::is_constructible<Vals, Args>...>, int> = 0>
223+
std::enable_if_t<sizeof...(Args) == sizeof...(Vals) &&
224+
std::conjunction_v<std::is_constructible<Vals, Args>...>,
225+
int> = 0>
222226
constexpr GT_FUNCTION values(Args &&...args) noexcept : m_vals{std::forward<Args>(args)...} {}
223227

224-
constexpr GT_FUNCTION values(Vals const &...args) noexcept : m_vals(args...) {}
225-
226228
constexpr GT_FUNCTION values(tuple<Vals...> &&args) noexcept : m_vals(std::move(args)) {}
227229
constexpr GT_FUNCTION values(tuple<Vals...> const &args) noexcept : m_vals(args) {}
228230

@@ -234,10 +236,7 @@ namespace gridtools {
234236

235237
template <class Src>
236238
constexpr GT_FUNCTION
237-
std::enable_if_t<((!std::is_same_v<values, std::decay_t<Src>> && is_hymap<std::decay_t<Src>>::value) &&
238-
... &&
239-
std::is_assignable_v<Vals &,
240-
std::add_lvalue_reference_t<element_at<Keys, std::remove_reference_t<Src>>>>),
239+
std::enable_if_t<!std::is_same_v<values, std::decay_t<Src>> && is_hymap<std::decay_t<Src>>::value,
241240
values &>
242241
operator=(Src &&src) {
243242
(...,

‎include/gridtools/stencil/frontend/cartesian/expressions/expr_pow.hpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ namespace gridtools {
2121
struct pow_f {
2222
template <class Arg>
2323
GT_FUNCTION constexpr auto operator()(Arg const &arg) const {
24-
return gt_pow<I>::template apply(arg);
24+
return gt_pow<I>::apply(arg);
2525
}
2626
};
2727

0 commit comments

Comments
 (0)