43
#ifndef OPENCV_CUDA_TYPE_TRAITS_HPP
44
#define OPENCV_CUDA_TYPE_TRAITS_HPP
46
#include "detail/type_traits_detail.hpp"
54
namespace
cv
{
namespace
cuda {
namespace
device
56
template
<
typename
T>
struct
IsSimpleParameter
58
enum
{value = type_traits_detail::IsIntegral<T>::value || type_traits_detail::IsFloat<T>::value ||
59
type_traits_detail::PointerTraits<typename type_traits_detail::ReferenceTraits<T>::type>::value};
62
template
<
typename
T>
struct
TypeTraits
64
typedef
typename
type_traits_detail::UnConst<T>::type NonConstType;
65
typedef
typename
type_traits_detail::UnVolatile<T>::type NonVolatileType;
66
typedef
typename
type_traits_detail::UnVolatile<typename type_traits_detail::UnConst<T>::type>::type UnqualifiedType;
67
typedef
typename
type_traits_detail::PointerTraits<UnqualifiedType>::type PointeeType;
68
typedef
typename
type_traits_detail::ReferenceTraits<T>::type ReferredType;
70
enum
{ isConst = type_traits_detail::UnConst<T>::value };
71
enum
{ isVolatile = type_traits_detail::UnVolatile<T>::value };
73
enum
{ isReference = type_traits_detail::ReferenceTraits<UnqualifiedType>::value };
74
enum
{ isPointer = type_traits_detail::PointerTraits<typename type_traits_detail::ReferenceTraits<UnqualifiedType>::type>::value };
76
enum
{ isUnsignedInt = type_traits_detail::IsUnsignedIntegral<UnqualifiedType>::value };
77
enum
{ isSignedInt = type_traits_detail::IsSignedIntergral<UnqualifiedType>::value };
78
enum
{ isIntegral = type_traits_detail::IsIntegral<UnqualifiedType>::value };
79
enum
{ isFloat = type_traits_detail::IsFloat<UnqualifiedType>::value };
80
enum
{ isArith = isIntegral || isFloat };
81
enum
{ isVec = type_traits_detail::IsVec<UnqualifiedType>::value };
83
typedef
typename
type_traits_detail::Select<IsSimpleParameter<UnqualifiedType>::value,
84
T,
typename
type_traits_detail::AddParameterType<T>::type>::type ParameterType;
"black box" representation of the file storage associated with a file on disk.
Definition:
aruco.hpp:75