Seite 1 von 1

[erledigt]Funktionsrückgabe eines std::unique_ptr-Members

Verfasst: 07.09.2015, 12:49
von joggel
Hach, mal wieder habe ich eine Frage bezüglich Smartpointer.

Aaaaaalso, ich verwende in meinem Programm States (zB Splashscreen, Menü, Spiel, etc..).
Dann einen Statemanager, der eben die einzelnen States verwaltet.
Im Code soll das dann wie folgt ausehen:

Code: Alles auswählen

SpielApp::drawFrame(Window& window)
{
	mStateManager.getActiveState()->drawFrame(window);
}
Nun habe ich in meinem StateManager einen Member vom Type std::unique_ptr<StateBase> den ich je nach notwendigkeit verändere.

Jetzt ist meine Frage, wie stelle ich das am *besten* und sichersten an, das die Funktion getActiveState() was "anständiges" zurückgibt.
Klar, ich könnte mit std::unique_ptr::get() arbeiten, aber ich weiß nicht ob das State-of-the-Art ist.

Zugegeben, ist vlt eine etwas blöde Frage, aber ich versuche mich immer noch mit diesen neuen Smartpointern vertraut zu machen...

Re: Funktionsrückgabe eines std::unique_ptr-Members

Verfasst: 07.09.2015, 13:03
von joggel
Ha! Ich glaube ich konnte das Problem gerade umgehen.
Also, es ist nicht mehr akut...

Re: Funktionsrückgabe eines std::unique_ptr-Members

Verfasst: 07.09.2015, 13:05
von dawit
Ich würde einfach std::unique_pr::get() zurückgeben. Du willst ja nur den Zugriff auf den Zeiger ermöglichen, und nicht den Besitz nach außen abgeben. Meiner bescheidenen Meinung nach müsste das auch State-of-the-Art sein.

EDIT: Ups, zu spät.

Re: Funktionsrückgabe eines std::unique_ptr-Members

Verfasst: 07.09.2015, 13:07
von joggel
Ja, nach dem ich das so gemacht habe, scheint mir das auch recht anständig auszusehen...