Skip to content

Commit 5b0028f

Browse files
committed
Fix explicit specialization in non-namespace scope
Fixes #2614
1 parent ca7f14c commit 5b0028f

File tree

2 files changed

+12
-24
lines changed

2 files changed

+12
-24
lines changed

include/oneapi/dpl/internal/random_impl/extreme_value_distribution.h

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -210,14 +210,10 @@ class extreme_value_distribution
210210
inline scalar_type
211211
callback()
212212
{
213-
return ((scalar_type*)(internal::gaussian_sp_table))[1];
214-
}
215-
216-
template <>
217-
inline scalar_type
218-
callback<double>()
219-
{
220-
return ((scalar_type*)(internal::gaussian_dp_table))[1];
213+
if constexpr (std::is_same_v<_Type, double>)
214+
return ((scalar_type*)(internal::gaussian_dp_table))[1];
215+
else
216+
return ((scalar_type*)(internal::gaussian_sp_table))[1];
221217
}
222218

223219
// Implementation for generate function

include/oneapi/dpl/internal/random_impl/normal_distribution.h

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -262,29 +262,21 @@ class normal_distribution
262262
inline scalar_type
263263
callback()
264264
{
265-
return ((scalar_type*)(internal::gaussian_sp_table))[1];
266-
}
267-
268-
template <>
269-
inline scalar_type
270-
callback<double>()
271-
{
272-
return ((scalar_type*)(internal::gaussian_dp_table))[1];
265+
if constexpr (std::is_same_v<_Type, double>)
266+
return ((scalar_type*)(internal::gaussian_dp_table))[1];
267+
else
268+
return ((scalar_type*)(internal::gaussian_sp_table))[1];
273269
}
274270

275271
// Get 2 * pi function
276272
template <typename _Type = float>
277273
inline scalar_type
278274
pi2()
279275
{
280-
return ((scalar_type*)(internal::gaussian_sp_table))[0];
281-
}
282-
283-
template <>
284-
inline scalar_type
285-
pi2<double>()
286-
{
287-
return ((scalar_type*)(internal::gaussian_dp_table))[0];
276+
if constexpr (std::is_same_v<_Type, double>)
277+
return ((scalar_type*)(internal::gaussian_dp_table))[0];
278+
else
279+
return ((scalar_type*)(internal::gaussian_sp_table))[0];
288280
}
289281

290282
// Implementation for generate function

0 commit comments

Comments
 (0)