type_traits.hpp
1 #pragma once
2 
8 #include <type_traits>
9 
10 #include "../namespace.hpp"
11 
12 namespace Cvb
13 {
14  CVB_BEGIN_INLINE_NS
15 
17  namespace Shims
18  {
19  template <class T>
20  struct remove_cvref
21  {
22  using type = std::remove_cv_t<std::remove_reference_t<T>>;
23  };
24 
25  template <class T>
26  using remove_cvref_t = typename remove_cvref<T>::type;
27 
28  template <class...>
29  struct conjunction : std::true_type
30  {
31  };
32  template <class B1>
33  struct conjunction<B1> : B1
34  {
35  };
36  template <class B1, class... Bn>
37  struct conjunction<B1, Bn...> : std::conditional_t<bool(B1::value), conjunction<Bn...>, B1>
38  {
39  };
40  } // namespace Shims
41  CVB_END_INLINE_NS
42 } // namespace Cvb
Root namespace for the Image Manager interface.
Definition: version.hpp:11