Skip to content

Commit faf23b6

Browse files
committed
std::void_t is a c++17 feature. create a self written implementation for backward compatibility.
1 parent 4718914 commit faf23b6

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/CubicInterpolation/FindParameter.hpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,13 @@ template <typename T> struct ParameterGuess {
2424

2525
namespace cubic_splines {
2626
namespace detail {
27-
template <typename T, typename = void> struct is_iterable : std::false_type {};
2827

28+
template<typename... Ts> struct make_void { typedef void type;};
29+
template<typename... Ts> using void_t = typename make_void<Ts...>::type;
30+
31+
template <typename T, typename = void> struct is_iterable : std::false_type {};
2932
template <typename T>
30-
struct is_iterable<T, std::void_t<decltype(std::declval<T>().begin()),
33+
struct is_iterable<T, void_t<decltype(std::declval<T>().begin()),
3134
decltype(std::declval<T>().end())>> : std::true_type {};
3235

3336
template <typename T1, typename T2, std::enable_if_t<is_iterable<T1>::value, bool> = true>

0 commit comments

Comments
 (0)