To reduce count of constructors

There are many constructors inside Featured and Holder implementations. For example,

template < typename _Value, typename _Tool = ::Inplace::DefaultTool >
class Featured
{
...
    template < typename ... _Arguments >
    constexpr Featured ( _Arguments && ... arguments );

    Featured ( ThisType && other );
    Featured ( const ThisType && other );
    Featured ( ThisType & other );
    Featured ( const ThisType & other );

    template < typename _OtherType, typename _OtherTool >
    Featured ( Featured< _OtherType, _OtherTool > && other );
    template < typename _OtherType, typename _OtherTool >
    Featured ( const Featured< _OtherType, _OtherTool > && other );
    template < typename _OtherType, typename _OtherTool >
    Featured ( const Featured< _OtherType, _OtherTool > & other );
    template < typename _OtherType, typename _OtherTool >
    constexpr Featured ( Featured< _OtherType, _OtherTool > & other );
};

This constructors have the same implementation inside them.

Maybe it is possible to exchange them by one using some like this:

template < typename _Value, typename _Tool = ::Inplace::DefaultTool >
class Featured
{
    template < typename _OtherType, typename = ::std::enable_if_t< ::std::is_reference_v< _Other_Type > && is_featured< _OtherType > > >
    using Reference = _OtherType;
...
    template < typename ... _Arguments >
    constexpr Featured ( _Arguments && ... arguments );

    template < typename _OtherType >
    constexpr Featured ( Reference< _OtherType > other );
};