/* enoki/array_traits.h -- Type traits for Enoki arrays Enoki is a C++ template library that enables transparent vectorization of numerical kernels using SIMD instruction sets available on current processor architectures. Copyright (c) 2019 Wenzel Jakob All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. */ #pragma once #include "fwd.h" #include #include #include #include #include #include #include #include #include #include NAMESPACE_BEGIN(enoki) // ----------------------------------------------------------------------- //! @{ \name General type traits (not specific to Enoki arrays) // ----------------------------------------------------------------------- /// Convenience wrapper around std::enable_if template using enable_if_t = std::enable_if_t; constexpr size_t Dynamic = (size_t) -1; namespace detail { /// Identity function for types template struct identity { using type = T; }; template