C
Siassei schrieb:
Wo her soll nun der Benutzer der Mehtode wissen, ob die Referenz an das Objekt gebunden oder neu erzeugt wurde?
Das kann er nicht. Wenn ein neues Objekt zurückgegeben werden soll, tu genau das und nicht mehr. Falls das Objekt aus irgendwelchen Gründen auf dem freestore existieren muss benutze einen geeigneten Smartpointer für die Rückgabe - das dient der Sicherheit und ist gleichzeitig selbstdokumentierend: auto_ptr ist hier der richtige Kandidat (shared_ptr/intrusive_ptr o.ä. sind auch möglich, beschränken allerdings die Freiheit des Aufrufers und bedürfen somit zusätzlicher Rechtfertigung).
Siassei schrieb:
Welche Lösung bieten sich an, wenn die Member von sRGB nicht öffentlich zugänglich sind?
Das sollte der Normalfall sein, und genau hierfür existieren Konstruktoren.
Siassei schrieb:
Was haltet ihr von friend + einen neuen Parameter, der das zu befühlende Objekt enthält?
nichts, es sei denn es wird gut begründet.
zu 2.) Argumentation wie oben, außer dass ggf. darüber nachzudenken wäre, die Funktion als freies Template zu implementieren: das beugt Codebloat vor, denn ProPhotoRGB<T, imax1>::nonlinearDecodingTosRGB und ProPhotoRGB<T, imax2>::nonlinearDecodingTosRGB haben nichts miteinander zu tun, obwohl die Funktion offensichtlich nicht von allen Templateparametern oder dem Zustand des Klassenobjekts abhängt.