assignment problem
-
Hallo Leute,
Ich habe folgenden code:
void func(/*enum*/WindowType Style) { int corner[4]; int line[2]; COORD coord; switch(Style){ case a: corner[4] = {201,187,200,188}; line[2] = {205,186}; coord = {x,y}; } }cannot convert '<brace-enclosed initializer list>' to 'int' in assignmentDas kommt dabei raus.Warum geht das nicht und wass gibt es für einen Lösungsansatz/Alternative?
-
corner = {123, 123, 123, 123};
-
unskilled schrieb:
corner = {123, 123, 123, 123};Das geht aber auch nur bei einer Initialisierung, nicht bei einer Zuweisung.
-
out schrieb:
unskilled schrieb:
corner = {123, 123, 123, 123};Das geht aber auch nur bei einer Initialisierung, nicht bei einer Zuweisung.
möglich^^ sry

-
Darum nimmt man ja auch keine rohen Arrays. structs haben Zuweisungssemantik. Und zufällig gibt es ja schon ein Arraykapselungsstruct in der Standardbibliothek.
#include <iostream> #include <array> int main() { std::array<int, 4> corner; corner = std::array<int, 4>{1, 2, 3, 4}; for (auto i: corner) std::cout << i << '\n'; }
-
SeppJ, da muss nicht gleich der copy-ctor bemüht werden:
std::array<int, 4> corner; corner = {1, 2, 3, 4};P.S.: Wie lange geht mein Ban jetzt?
-
Ups: Es muss natürlich copy assignment operator heißen

-
was hast wieder angestellt.
