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()); } };