commit 1311e48a3cc4189c646583183eda1367f0274046
Author: Vadim Zeitlin
Date: Fri Jan 13 17:46:21 2017 +0100
Fix the user of range-based for loops with Filesystem library
We need to iterate over directory_iterator, not path components.
diff --git a/ce_product_name.cpp b/ce_product_name.cpp
index 92c26cc..333fff3 100644
--- a/ce_product_name.cpp
+++ b/ce_product_name.cpp
@@ -41,7 +41,7 @@ std::vector fetch_product_names()
{
fs::path path(global_settings::instance().data_directory());
std::vector names;
- for(fs::path const& p: path)
+ for(fs::path const& p: fs::directory_iterator(path))
{
if(is_directory(p) || ".policy" != fs::extension(p))
{
diff --git a/ce_skin_name.cpp b/ce_skin_name.cpp
index fea66f2..0504497 100644
--- a/ce_skin_name.cpp
+++ b/ce_skin_name.cpp
@@ -42,7 +42,7 @@ std::vector fetch_skin_names()
{
fs::path path(global_settings::instance().data_directory());
std::vector names;
- for(fs::path const& p: path)
+ for(fs::path const& p: fs::directory_iterator(path))
{
if(is_directory(p) || ".xrc" != fs::extension(p))
{
diff --git a/dbdict.cpp b/dbdict.cpp
index 6ec1d43..166cfca 100644
--- a/dbdict.cpp
+++ b/dbdict.cpp
@@ -36,14 +36,13 @@
#include "miscellany.hpp"
#include "my_proem.hpp" // ::write_proem()
#include "oecumenic_enumerations.hpp"
+#include "path_utility.hpp"
#include "premium_tax.hpp" // premium_tax_rates_for_life_insurance()
#include "xml_lmi.hpp"
#include "xml_serialize.hpp"
#include
#include
-#include
-#include
#include
#include
@@ -1069,7 +1068,7 @@ void DBDictionary::InitAntediluvian()
void print_databases()
{
fs::path path(global_settings::instance().data_directory());
- for(fs::path const& p: path)
+ for(fs::path const& p: fs::directory_iterator(path))
{
if(is_directory(p) || ".database" != fs::extension(p))
{
diff --git a/path_utility.hpp b/path_utility.hpp
index 6ad44c1..0f4103f 100644
--- a/path_utility.hpp
+++ b/path_utility.hpp
@@ -26,6 +26,7 @@
#include "so_attributes.hpp"
+#include
#include
#include
@@ -69,6 +70,16 @@ inline std::ostream& operator<<(std::ostream& os, fs::path const& z)
return os << z.string();
}
+inline directory_iterator begin(directory_iterator iter)
+{
+ return iter;
+}
+
+inline directory_iterator end(directory_iterator const&)
+{
+ return directory_iterator();
+}
+
} // namespace filesystem
} // namespace boost
diff --git a/wx_test_benchmark_census.cpp b/wx_test_benchmark_census.cpp
index a2f854e..78f77c0 100644
--- a/wx_test_benchmark_census.cpp
+++ b/wx_test_benchmark_census.cpp
@@ -22,6 +22,7 @@
#include "pchfile_wx.hpp"
#include "assert_lmi.hpp"
+#include "path_utility.hpp"
#include "wx_test_case.hpp"
#include "wx_test_statusbar.hpp"
#include "uncopyable_lmi.hpp"
@@ -33,8 +34,6 @@
#include
#include
-#include
-
#include // std::fabs()
namespace
@@ -133,7 +132,7 @@ class census_benchmark
LMI_WX_TEST_CASE(benchmark_census)
{
fs::directory_iterator const end_i;
- for(fs::path const& p: get_test_files_path())
+ for(fs::path const& p: fs::directory_iterator(get_test_files_path()))
{
if(!wxString(p.leaf()).Matches("MSEC*.cns"))
{