@@ -4,6 +4,7 @@
44#include <cstddef>
55#include <cstring>
66#include <type_traits>
7+#include <utility>
78
89// Given `enum T { A, B, C }` and `enum S { X, Y, Z }`, we can use
910// `is_same_enum<enum_values<T, A, B, C>, enum_values<S, X, Y, Z>>::value`
@@ -31,7 +32,7 @@ struct is_same_enum: std::false_type
3132
3233template<typename T, T... TVals, typename S, S... SVals>
3334struct is_same_enum<enum_values<T, TVals...>, enum_values<S, SVals...>>:
34− std::integral_constant<bool, std::is_same_v<
35+ std::integral_constant<bool, std::is_same<
3536 std::integer_sequence<
3637 typename std::common_type<
3738 typename std::underlying_type<T>::type,
@@ -46,7 +47,7 @@ struct is_same_enum<enum_values<T, TVals...>, enum_values<S, SVals...>>:
4647 >::type,
4748 SVals...
4849 >
49− >>
50+ >::value>
5051{};
5152
5253inline void unmarshal_string_size(std::string const &string, char *&c_string, size_t &c_string_size)