diff --git a/include/nana/filesystem/filesystem.hpp b/include/nana/filesystem/filesystem.hpp index a3a3e373..61ce8223 100644 --- a/include/nana/filesystem/filesystem.hpp +++ b/include/nana/filesystem/filesystem.hpp @@ -40,18 +40,14 @@ #include - // namespace std { namespace experimental { namespace filesystem { inline namespace v1 { - -namespace nana { namespace experimental { - -#ifndef CXX_NO_INLINE_NAMESPACE -inline namespace v1 +namespace nana { namespace experimental { namespace filesystem { +#ifndef CXX_NO_INLINE_NAMESPACE + inline namespace v1 + { #endif -namespace filesystem -{ - enum class file_type + enum class file_type { none = 0, ///< has not been determined or an error occurred while trying to determine not_found = -1, ///< Pseudo-type: file was not found. Is not considered an error diff --git a/include/nana/filesystem/filesystem_ext.hpp b/include/nana/filesystem/filesystem_ext.hpp index 1f5d4317..0e75b249 100644 --- a/include/nana/filesystem/filesystem_ext.hpp +++ b/include/nana/filesystem/filesystem_ext.hpp @@ -15,6 +15,7 @@ #ifndef NANA_FILESYSTEM_EXT_HPP #define NANA_FILESYSTEM_EXT_HPP +namespace nana {namespace experimental {namespace filesystem {namespace ext { #if defined(NANA_WINDOWS) constexpr auto def_root = "C:"; constexpr auto def_rootstr = "C:\\"; @@ -27,4 +28,17 @@ // nana::experimental::filesystem::path_user()); // REPLACE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! to filesystem_ext.hhp +template // DI = directory_iterator from std, boost, or nana +class directory_only_iterator : public DI +{ + // if (!this->is_directory()) continue; +}; + +template // DI = directory_iterator from std, boost, or nana +class regular_file_only_iterator : public DI +{ + // if (this->is_directory()) continue; +}; + + }}}} #endif //NANA_FILESYSTEM_EXT_HPP diff --git a/include/nana/filesystem/filesystem_selector.hpp b/include/nana/filesystem/filesystem_selector.hpp index a91e903d..b168ce30 100644 --- a/include/nana/filesystem/filesystem_selector.hpp +++ b/include/nana/filesystem/filesystem_selector.hpp @@ -31,29 +31,40 @@ #if defined(NANA_BOOST_FILESYSTEM_AVAILABLE) && ( defined(NANA_BOOST_FILESYSTEM_FORCE) || (defined(STD_FILESYSTEM_NOT_SUPPORTED) && defined(NANA_BOOST_FILESYSTEM_PREFERRED) ) ) # include + // add boost::filesystem into std::experimental::filesystem - namespace std { - namespace experimental { +namespace std { + namespace experimental { + namespace filesystem { + # ifdef CXX_NO_INLINE_NAMESPACE - using namespace boost::experimental; + using namespace boost::experimental::filesystem; # else - using namespace boost::experimental::v3; + using namespace boost::experimental::filesystem::v3; # endif - } + } // filesystem + } // experimental +} // std + #elif defined(STD_FILESYSTEM_NOT_SUPPORTED) # include - namespace std { - namespace experimental { + +namespace std { + namespace experimental { + namespace filesystem { + # ifdef CXX_NO_INLINE_NAMESPACE - using namespace nana::experimental; + using namespace nana::experimental::filesystem; # else - using namespace nana::experimental::v1; + using namespace nana::experimental::filesystem::v1; # endif - } -} + + } // filesystem + } // experimental +} // std #else # include diff --git a/source/filesystem/filesystem.cpp b/source/filesystem/filesystem.cpp index aca26162..3f432fbd 100644 --- a/source/filesystem/filesystem.cpp +++ b/source/filesystem/filesystem.cpp @@ -37,12 +37,12 @@ #endif -namespace nana { namespace experimental { -#ifndef CXX_NO_INLINE_NAMESPACE - inline namespace v1 { -#endif - namespace filesystem +namespace nana { namespace experimental { namespace filesystem { +#ifndef CXX_NO_INLINE_NAMESPACE + inline namespace v1 { +#endif + //class filesystem_error filesystem_error::filesystem_error(const std::string& msg, std::error_code err) : std::system_error(err, msg)