@@ -533,74 +533,6 @@ namespace xt
533533 return std::get<I>(static_cast <const std::tuple<Args...>&>(v));
534534 }
535535
536- /* **************************
537- * apply_cv implementation *
538- ***************************/
539-
540- namespace detail
541- {
542- template <
543- class T ,
544- class U ,
545- bool = std::is_const<std::remove_reference_t <T>>::value,
546- bool = std::is_volatile<std::remove_reference_t <T>>::value>
547- struct apply_cv_impl
548- {
549- using type = U;
550- };
551-
552- template <class T , class U >
553- struct apply_cv_impl <T, U, true , false >
554- {
555- using type = const U;
556- };
557-
558- template <class T , class U >
559- struct apply_cv_impl <T, U, false , true >
560- {
561- using type = volatile U;
562- };
563-
564- template <class T , class U >
565- struct apply_cv_impl <T, U, true , true >
566- {
567- using type = const volatile U;
568- };
569-
570- template <class T , class U >
571- struct apply_cv_impl <T&, U, false , false >
572- {
573- using type = U&;
574- };
575-
576- template <class T , class U >
577- struct apply_cv_impl <T&, U, true , false >
578- {
579- using type = const U&;
580- };
581-
582- template <class T , class U >
583- struct apply_cv_impl <T&, U, false , true >
584- {
585- using type = volatile U&;
586- };
587-
588- template <class T , class U >
589- struct apply_cv_impl <T&, U, true , true >
590- {
591- using type = const volatile U&;
592- };
593- }
594-
595- template <class T , class U >
596- struct apply_cv
597- {
598- using type = typename detail::apply_cv_impl<T, U>::type;
599- };
600-
601- template <class T , class U >
602- using apply_cv_t = typename apply_cv<T, U>::type;
603-
604536 /* *************************
605537 * to_array implementation *
606538 ***************************/
0 commit comments