Возможно ли принципиальное разрешение конструктора по умолчанию?
, или даже разрешено стандартом C ++ 11?
И если так, есть ли компилятор, который на самом деле это делает?
Вот пример того, что я имею в виду:
template //T is a builtin type
class data
{
public:
constexpr
data() noexcept :
x_{0,0,0,0}
{}
constexpr
data(const T& a, const T& b, const T& c, const T& d) noexcept :
x_{a,b,c,d}
{}
data(const data&) noexcept = default;
data& operator = (const data&) noexcept = default;
constexpr const T&
operator[] (std::size_t i) const noexcept {
return x_[i];
}
T&
operator[] (std::size_t i) noexcept {
return x_[i];
}
private:
T x_[4];
};
template
Ostream& operator < (Ostream& os, const data