From 28b5dd0163c824de79dcc487ce2e54a4a8e00d04 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Tue, 1 Mar 2016 13:19:02 -0500 Subject: [PATCH] shared_ptr: further simplify static_shared_vector<>() --- src/misc/pv/sharedVector.h | 34 +++++++++++----------------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/src/misc/pv/sharedVector.h b/src/misc/pv/sharedVector.h index 30cef60..eaaf95b 100644 --- a/src/misc/pv/sharedVector.h +++ b/src/misc/pv/sharedVector.h @@ -623,33 +623,21 @@ namespace detail { template struct static_shared_vector_caster { /* no default */ }; // from void to non-void with same const-ness - template - struct static_shared_vector_caster, meta::is_not_void >::type> { - static inline shared_vector op(const shared_vector& src) { - return shared_vector(src, detail::_shared_vector_cast_tag()); - } - }; - template - struct static_shared_vector_caster, meta::is_not_void >::type> { - static inline shared_vector op(const shared_vector& src) { + template + struct static_shared_vector_caster, meta::is_void >, + meta::same_const >::type> { + static inline shared_vector op(const shared_vector& src) { return shared_vector(src, detail::_shared_vector_cast_tag()); } }; // from non-void to void with same const-ness - template - struct static_shared_vector_caster, meta::is_not_void >::type> { - static FORCE_INLINE shared_vector op(const shared_vector& src) { - return shared_vector(src, detail::_shared_vector_cast_tag()); - } - }; - template - struct static_shared_vector_caster, meta::is_not_void >::type> { - static FORCE_INLINE shared_vector op(const shared_vector& src) { - return shared_vector(src, detail::_shared_vector_cast_tag()); + template + struct static_shared_vector_caster, meta::is_not_void >, + meta::same_const >::type> { + static FORCE_INLINE shared_vector op(const shared_vector& src) { + return shared_vector(src, detail::_shared_vector_cast_tag()); } };