2017-10-05 17 views
1

Ich war immer neugierig darauf, aber fand nie eine solide Antwort oder eine leicht verständliche Erklärung. Ich habe es mit anderen Betreibern versucht und es funktioniert gut. Dieser Operator ist besonders interessant. Ich kann einfach meinen Kopf nicht darum wickeln.Warum kann ein ternärer Operator nicht überlastet werden?

+0

Alles, was ich von dieser Antwort bekam, war eine Annahme, dass es aufgegeben wurde und kein wirklicher Grund angegeben wurde, warum es nicht getan wurde. Ich suche nach der Ursprungsgeschichte dieses Betreibers. –

Antwort

4

FAQ von stroustrup:

Es gibt keinen fundamentalen Grund Überlastung von ?: zu verbieten. Ich habe nur sah nicht die Notwendigkeit, den Sonderfall der Überlastung eines ternären Betreiber einzuführen. Beachten Sie, dass eine Überlastung der Funktion expr1?expr2:expr3 nicht garantieren kann, dass nur eine von expr2 und expr3 ausgeführt wurde.

+1

Dies ist eine viel bessere Antwort als die vorherige. Also im Grunde weiß niemand und hat sich nicht mit der Idee beschäftigt. –

+1

@MSquared Das ist kein guter Grund, die Frage erneut zu stellen. Während diese Antwort vielleicht besser ist als die bei der Betrogenen, ist das Verteilen von guten Antworten auf mehrere identische Fragen genau das, was das Duplikatsystem vermeiden sollte, weil es es schwieriger macht, alle guten Antworten zu finden. Wenn Sie der Meinung sind, dass eine bestehende Frage besser beantwortet werden muss, sollten Sie ein Kopfgeld aufbringen (75 Wiederholungen erforderlich), damit SO gut und durchsuchbar bleibt. –