würde Ich mag einen Operator hinzufügen, um std :: unique_ptr, so kann ich make_unique hinzufügen, ohne make_unique zu Code hinzufügenÜberlastung unique_ptr Bedienerruf make_unique
ich möchte in der Lage sein, es zu tun, so etwas wie dieses
namespace Window
{
class CWindow;
typedef std::unique_ptr<CWindow> Window;
template<typename... Args>
Window::operator=(Args&&... args)
{
return std::make_unique<CWindow>(std::forward<Args>(args)...);
}
}
//global
Window::Window MainWindow;
//In WinMain
MainWindow = Window::CWindow("Window Name", Vector2D(10, 10), Vector2D(500, 500));
Warum nicht 'Vorlage Fenster CreateWindow (Ts && ... Args) {zurück make_unique (Std :: vorwärts (args) ...);}'? –
Jarod42
Weil das Hinzufügen von anderen Windows-Steuerelementen auf diese Weise Zeiger auf das Hauptfenster/die Registerkarten – koyesika
hat 'operator =' akzeptiert nur ein Argument. Warum weist man 'unique_ptr', das mit' make_unique' erstellt wurde, nicht einfach 'MainWindow' zu? –