[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] master d54ae72 4/6: Replace shared_ptr with unique_p
From: |
Greg Chicares |
Subject: |
[lmi-commits] [lmi] master d54ae72 4/6: Replace shared_ptr with unique_ptr |
Date: |
Tue, 16 Oct 2018 09:19:10 -0400 (EDT) |
branch: master
commit d54ae7223e6253885cc2b6c34e585cc8866a86af
Author: Gregory W. Chicares <address@hidden>
Commit: Gregory W. Chicares <address@hidden>
Replace shared_ptr with unique_ptr
The virtual dtor (which should always have been public anyway) makes
covariant return (and hence destruction through a base-class pointer)
safe. It is assumed that the conversion performed by covariant return
is optimized well enough that it doesn't matter.
---
group_values.cpp | 4 ++--
progress_meter.cpp | 2 +-
progress_meter.hpp | 10 +++++-----
progress_meter_cgi.cpp | 8 +++-----
progress_meter_cli.cpp | 8 +++-----
progress_meter_test.cpp | 14 +++++++-------
progress_meter_wx.cpp | 8 +++-----
7 files changed, 24 insertions(+), 30 deletions(-)
diff --git a/group_values.cpp b/group_values.cpp
index 313597b..b422971 100644
--- a/group_values.cpp
+++ b/group_values.cpp
@@ -118,7 +118,7 @@ census_run_result run_census_in_series::operator()
{
Timer timer;
census_run_result result;
- std::shared_ptr<progress_meter> meter
+ std::unique_ptr<progress_meter> meter
(create_progress_meter
(lmi::ssize(cells)
,"Calculating all cells"
@@ -241,7 +241,7 @@ census_run_result run_census_in_parallel::operator()
{
Timer timer;
census_run_result result;
- std::shared_ptr<progress_meter> meter
+ std::unique_ptr<progress_meter> meter
(create_progress_meter
(lmi::ssize(cells)
,"Initializing all cells"
diff --git a/progress_meter.cpp b/progress_meter.cpp
index 64df241..0b5b827 100644
--- a/progress_meter.cpp
+++ b/progress_meter.cpp
@@ -37,7 +37,7 @@ std::ostringstream& progress_meter_unit_test_stream()
progress_meter_creator_type progress_meter_creator = nullptr;
-std::shared_ptr<progress_meter> create_progress_meter
+std::unique_ptr<progress_meter> create_progress_meter
(int max_count
,std::string const& title
,progress_meter::enum_display_mode display_mode
diff --git a/progress_meter.hpp b/progress_meter.hpp
index 99b5e31..f0e2572 100644
--- a/progress_meter.hpp
+++ b/progress_meter.hpp
@@ -195,7 +195,7 @@
#include "so_attributes.hpp"
#include <iosfwd>
-#include <memory> // shared_ptr
+#include <memory> // unique_ptr
#include <string>
std::ostringstream& LMI_SO progress_meter_unit_test_stream();
@@ -209,6 +209,8 @@ class LMI_SO progress_meter
,e_unit_test_mode
};
+ virtual ~progress_meter();
+
void dawdle(int seconds);
bool reflect_progress();
void culminate();
@@ -220,8 +222,6 @@ class LMI_SO progress_meter
,enum_display_mode
);
- virtual ~progress_meter();
-
int count() const;
int max_count() const;
@@ -249,13 +249,13 @@ class LMI_SO progress_meter
bool was_cancelled_;
};
-std::shared_ptr<progress_meter> LMI_SO create_progress_meter
+std::unique_ptr<progress_meter> LMI_SO create_progress_meter
(int max_count
,std::string const& title = std::string()
,progress_meter::enum_display_mode = progress_meter::e_normal_display
);
-typedef std::shared_ptr<progress_meter> (*progress_meter_creator_type)
+typedef std::unique_ptr<progress_meter> (*progress_meter_creator_type)
(int max_count
,std::string const& title
,progress_meter::enum_display_mode
diff --git a/progress_meter_cgi.cpp b/progress_meter_cgi.cpp
index 3a7075e..b30f979 100644
--- a/progress_meter_cgi.cpp
+++ b/progress_meter_cgi.cpp
@@ -73,15 +73,13 @@ void concrete_progress_meter::culminate_ui()
{
}
-std::shared_ptr<progress_meter> concrete_progress_meter_creator
+std::unique_ptr<progress_meter> concrete_progress_meter_creator
(int max_count
,std::string const& title
- ,progress_meter::enum_display_mode display_mode
+ ,progress_meter::enum_display_mode mode
)
{
- return std::shared_ptr<progress_meter>
- (new concrete_progress_meter(max_count, title, display_mode)
- );
+ return std::make_unique<concrete_progress_meter>(max_count, title, mode);
}
bool volatile ensure_setup = set_progress_meter_creator
diff --git a/progress_meter_cli.cpp b/progress_meter_cli.cpp
index a023e86..f02d58e 100644
--- a/progress_meter_cli.cpp
+++ b/progress_meter_cli.cpp
@@ -110,15 +110,13 @@ void concrete_progress_meter::culminate_ui()
os_ << std::endl;
}
-std::shared_ptr<progress_meter> concrete_progress_meter_creator
+std::unique_ptr<progress_meter> concrete_progress_meter_creator
(int max_count
,std::string const& title
- ,progress_meter::enum_display_mode display_mode
+ ,progress_meter::enum_display_mode mode
)
{
- return std::shared_ptr<progress_meter>
- (new concrete_progress_meter(max_count, title, display_mode)
- );
+ return std::make_unique<concrete_progress_meter>(max_count, title, mode);
}
bool volatile ensure_setup = set_progress_meter_creator
diff --git a/progress_meter_test.cpp b/progress_meter_test.cpp
index 094a8c2..2543793 100644
--- a/progress_meter_test.cpp
+++ b/progress_meter_test.cpp
@@ -53,7 +53,7 @@ void progress_meter_test::test_normal_usage()
{
progress_meter_unit_test_stream().str("");
int const max_count = 3;
- std::shared_ptr<progress_meter> meter
+ std::unique_ptr<progress_meter> meter
(create_progress_meter
(max_count
,"Some title"
@@ -78,7 +78,7 @@ void progress_meter_test::test_normal_usage()
void progress_meter_test::test_quiet_display_mode()
{
int const max_count = 3;
- std::shared_ptr<progress_meter> meter
+ std::unique_ptr<progress_meter> meter
(create_progress_meter
(max_count
,"ERROR: THIS SHOULD NOT DISPLAY"
@@ -97,7 +97,7 @@ void progress_meter_test::test_distinct_metered_operations()
progress_meter_unit_test_stream().str("");
int const max_count = 3;
- std::shared_ptr<progress_meter> meter0
+ std::unique_ptr<progress_meter> meter0
(create_progress_meter
(max_count
,"Operation 0"
@@ -111,7 +111,7 @@ void progress_meter_test::test_distinct_metered_operations()
meter0->culminate();
// Use a different shared pointer.
- std::shared_ptr<progress_meter> meter1
+ std::unique_ptr<progress_meter> meter1
(create_progress_meter
(max_count
,"Operation 1"
@@ -146,7 +146,7 @@ void
progress_meter_test::test_empty_title_and_zero_max_count()
{
progress_meter_unit_test_stream().str("");
int const max_count = 0;
- std::shared_ptr<progress_meter> meter
+ std::unique_ptr<progress_meter> meter
(create_progress_meter
(max_count
,""
@@ -168,7 +168,7 @@ void progress_meter_test::test_postcondition_failure()
{
progress_meter_unit_test_stream().str("");
int const max_count = 3;
- std::shared_ptr<progress_meter> meter
+ std::unique_ptr<progress_meter> meter
(create_progress_meter
(max_count
,"Some title"
@@ -213,7 +213,7 @@ void progress_meter_test::test_failure_to_culminate()
{
progress_meter_unit_test_stream().str("");
int const max_count = 3;
- std::shared_ptr<progress_meter> meter
+ std::unique_ptr<progress_meter> meter
(create_progress_meter
(max_count
,"Some title"
diff --git a/progress_meter_wx.cpp b/progress_meter_wx.cpp
index b04116e..5e16e38 100644
--- a/progress_meter_wx.cpp
+++ b/progress_meter_wx.cpp
@@ -150,15 +150,13 @@ void concrete_progress_meter::culminate_ui()
{
}
-std::shared_ptr<progress_meter> concrete_progress_meter_creator
+std::unique_ptr<progress_meter> concrete_progress_meter_creator
(int max_count
,std::string const& title
- ,progress_meter::enum_display_mode display_mode
+ ,progress_meter::enum_display_mode mode
)
{
- return std::shared_ptr<progress_meter>
- (new concrete_progress_meter(max_count, title, display_mode)
- );
+ return std::make_unique<concrete_progress_meter>(max_count, title, mode);
}
bool volatile ensure_setup = set_progress_meter_creator
- [lmi-commits] [lmi] master updated (3e5ce14 -> 4c21bf7), Greg Chicares, 2018/10/16
- [lmi-commits] [lmi] master 019da5e 3/6: Designate release candidate 20181016T0923Z, Greg Chicares, 2018/10/16
- [lmi-commits] [lmi] master 2b3880b 1/6: Remove a needless "PDF !!" marker, Greg Chicares, 2018/10/16
- [lmi-commits] [lmi] master ee64a21 5/6: Rename a member for concinnity, Greg Chicares, 2018/10/16
- [lmi-commits] [lmi] master 4c21bf7 6/6: Replace shared_ptr with unique_ptr, Greg Chicares, 2018/10/16
- [lmi-commits] [lmi] master 40a5176 2/6: Improve a comment, Greg Chicares, 2018/10/16
- [lmi-commits] [lmi] master d54ae72 4/6: Replace shared_ptr with unique_ptr,
Greg Chicares <=