Frage bezueglich expr ? ... : ...
-
hi,
habe folgenden code:if ( count == 3 ) j + 1 < getField ()->getY () ? result = std::make_pair ( i, j + 1 ) : count = 0 ;
in einer schleife wird unter bestimmten voraussetzungen count inkrementiert. wenn count 3 erreicht soll, falls der naechste wert gueltig ist ein std::pair mit zwei coordinaten zurueckgegeben werden, ansonsten zaehlt man wieder von vorne.der compiler gibt mir folgende meldung:
error C2446: ':' : no conversion from 'short' to 'std::pair<_Ty1,_Ty2>' with [ _Ty1=int, _Ty2=int ] No constructor could take the source type, or constructor overload resolution was ambiguous
man sollte wissen, dass count ein short und result ein std::pair<int, int> ist.
soweit ich verstehe, denkt der compiler ich will result = count schreiben, deswegen habe ich es schon alle moeglichkeiten, klammern zu setzen ausprobiert, aber ichts hat geholfen.
vielleicht weiss einer von euch weiter.bedanke mich schon mal im voraus fuer alle antworten.was auch immer
-
was auch immer schrieb:
vielleicht weiss einer von euch weiter.bedanke mich schon mal im voraus fuer alle antworten.
Grob gesagt, müssen die beiden Ausdrücke hinter dem Fragezeichen vom gleichen Typ sein. Das sind sie bei dir aber nicht.
-
naja, dann werde ich wohl das design nochmal ueberarbeiten muessen...
trotzdem danke fuer deine muehe.was auch immer
-
was auch immer schrieb:
naja, dann werde ich wohl das design nochmal ueberarbeiten muessen...
oder einfach lesbaren code und somit ein if verwenden...?