Gdzie w normie jest a = b + {1, 2}
niedozwolone poniżej?Gdzie C++ standardu jest 'a = b + {1, 2} `dozwolone w poniższym fragmencie?
class complex {
double re, im;
public:
complex(double r, double i) : re{ r }, im{ i } {}
complex& operator+=(const complex& other) { re += other.re; im += other.im; return *this; }
};
inline complex operator+(complex lhs, const complex& rhs)
{
lhs += rhs;
return lhs;
}
int main()
{
complex a{ 1, 1 };
complex b{ 2, -3 };
a += {1, 3}; // Ok
a = b + {1, 2}; // doesn't compile
}
nie mam odpowiedzi na swoje pytanie, ale należy pamiętać, że 'a = b + kompleks {1, 2};' działa jako obejście – CoryKramer
Byłoby miło to komunikat eror. – jrok
spojrzenie na http://en.cppreference.com/w/cpp/language/list_initialization który przedstawia konteksty, w których usztywnione inicjalizacji mogą być użyte. – qeadz