manage ui instance by unique_ptr
3 files changed, 8 insertions(+), 10 deletions(-)

M CMakeLists.txt
M mainwindow.cpp
M mainwindow.h
M CMakeLists.txt +1 -1
@@ 8,7 8,7 @@ set(CMAKE_AUTOUIC ON)
 set(CMAKE_AUTOMOC ON)
 set(CMAKE_AUTORCC ON)
 
-set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD 14)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
 # QtCreator supports the following variables for Android, which are identical to qmake Android variables.

          
M mainwindow.cpp +4 -7
@@ 4,16 4,13 @@ 
 
 MainWindow::MainWindow(QWidget *parent)
     : QMainWindow(parent)
-    , ui(new Ui::MainWindow)
+    , ui_(std::make_unique<Ui::MainWindow>())
 {
-    ui->setupUi(this);
+    ui_->setupUi(this);
 
     auto *model = new QStringListModel({"Foo", "Bar", "Baz"}, this);
-    ui->treeView->setModel(model);
+    ui_->treeView->setModel(model);
 }
 
-MainWindow::~MainWindow()
-{
-    delete ui;
-}
+MainWindow::~MainWindow() = default;
 

          
M mainwindow.h +3 -2
@@ 2,6 2,7 @@ 
 #define MAINWINDOW_H
 
 #include <QMainWindow>
+#include <memory>
 
 QT_BEGIN_NAMESPACE
 namespace Ui { class MainWindow; }

          
@@ 13,9 14,9 @@ class MainWindow : public QMainWindow
 
 public:
     MainWindow(QWidget *parent = nullptr);
-    ~MainWindow();
+    ~MainWindow() override;
 
 private:
-    Ui::MainWindow *ui;
+    std::unique_ptr<Ui::MainWindow> ui_;
 };
 #endif // MAINWINDOW_H