#include <type_traits>

template <typename T>
class VectorBase
{
public:
    VectorBase() = default;

    template <typename T2, typename = typename std::enable_if<std::is_same<double, T>::value && std::is_same<float, T2>::value>::type>
    VectorBase(const VectorBase<T2> &) {}
};

int main()
{
    VectorBase<float> f;
    VectorBase<double> d(f);
}
