10 #ifndef vtk_m_internal_Meta_h
11 #define vtk_m_internal_Meta_h
18 #include <type_traits>
37 template <
typename T1,
typename T2>
38 struct AndImpl : std::integral_constant<bool, T1::value && T2::value>
42 template <
typename T1,
typename T2>
43 struct OrImpl : std::integral_constant<bool, T1::value || T2::value>
48 struct NotImpl : std::integral_constant<bool, !T::value>
56 template <
typename T1,
typename T2>
57 using And =
typename detail::AndImpl<T1, T2>::type;
61 template <
typename T1,
typename T2>
62 using Or =
typename detail::OrImpl<T1, T2>::type;
67 using Not =
typename detail::NotImpl<T>::type;
78 #endif //vtk_m_internal_Meta_h