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")) {