I deleted a copy constructor in base class but I can't get if the compiler will create an implicit copy constructor in child classes? Or does a deleted constructor in the base class prevent it?
template <typename val_t>
class exp_t {
public:
using vals_t = std::vector<val_t>;
exp_t() {}
exp_t(const exp_t<val_t> &) = delete;
exp_t(exp_t &&) = default;
virtual ~exp_t() {}
exp_t<val_t> &operator=(const exp_t<val_t> &) = delete;
exp_t<val_t> &operator=(exp_t<val_t> &) = delete;
exp_t<val_t> &operator=(exp_t &&) = default;
};
template <typename val_t>
class fact_t: public exp_t<val_t> {
using vals_t = std::vector<val_t>;
val_t m_value;
public:
fact_t(val_t &&value) : m_value{std::forward<val_t>(value)} {}
fact_t(fact_t &&) = default;
};
Will fact_t
have an implicit copy constructor? (GCC 7)