FIX: inline functions and one default constructor. Tested OK !

This commit is contained in:
qPCR4vir 2015-05-23 23:55:19 +02:00
parent 895dbcbe7d
commit e99783ed54

View File

@ -139,6 +139,7 @@ namespace filesystem
file_type what() const; file_type what() const;
nana::string name() const; nana::string name() const;
operator nana::string() { return name(); }
private: private:
#if defined(NANA_WINDOWS) #if defined(NANA_WINDOWS)
nana::string text_; nana::string text_;
@ -154,7 +155,7 @@ namespace filesystem
attribute attr{}; attribute attr{};
//file_status m_status; //file_status m_status;
directory_entry(); directory_entry(){}
directory_entry(const nana::string& filename, bool is_directory, uintmax_t size) directory_entry(const nana::string& filename, bool is_directory, uintmax_t size)
:m_path{filename}, attr{size, is_directory} :m_path{filename}, attr{size, is_directory}
{} {}
@ -368,8 +369,8 @@ namespace filesystem
}; };
// enable directory_iterator range-based for statements // enable directory_iterator range-based for statements
directory_iterator begin(directory_iterator iter) noexcept { return iter; } inline directory_iterator begin(directory_iterator iter) noexcept { return iter; }
directory_iterator end(const directory_iterator&) noexcept { return {}; } inline directory_iterator end(const directory_iterator&) noexcept { return {}; }
//class recursive_directory_iterator; //class recursive_directory_iterator;
//// enable recursive_directory_iterator range-based for statements //// enable recursive_directory_iterator range-based for statements
@ -392,13 +393,13 @@ namespace filesystem
// file_status status(const path& p); // file_status status(const path& p);
bool file_attrib(const nana::string& file, attribute&); bool file_attrib(const nana::string& file, attribute&);
bool is_directory(file_status s) noexcept{ return s.type() == file_type::directory ;} inline bool is_directory(file_status s) noexcept{ return s.type() == file_type::directory ;}
bool is_directory(const path& p){return directory_iterator(p.name())->attr.directory; } inline bool is_directory(const path& p){return directory_iterator(p.name())->attr.directory; }
//bool is_directory(const path& p, error_code& ec) noexcept; //bool is_directory(const path& p, error_code& ec) noexcept;
//bool is_regular_file(file_status s) noexcept; //bool is_regular_file(file_status s) noexcept;
bool is_empty(const path& p) inline bool is_empty(const path& p)
{ {
directory_iterator d(p) ; directory_iterator d(p) ;
return d->attr.directory ? d == directory_iterator() return d->attr.directory ? d == directory_iterator()
@ -407,7 +408,7 @@ namespace filesystem
//bool is_empty(const path& p, error_code& ec) noexcept; //bool is_empty(const path& p, error_code& ec) noexcept;
uintmax_t file_size(const nana::string& file); // deprecate? uintmax_t file_size(const nana::string& file); // deprecate?
uintmax_t file_size(const path& p){return file_size(p.name());} inline uintmax_t file_size(const path& p){return file_size(p.name());}
//uintmax_t file_size(const path& p, error_code& ec) noexcept; //uintmax_t file_size(const path& p, error_code& ec) noexcept;
//long long filesize(const nana::string& file); //long long filesize(const nana::string& file);
@ -419,7 +420,7 @@ namespace filesystem
bool create_directory(const path& p, const path& attributes); bool create_directory(const path& p, const path& attributes);
//bool create_directory(const path& p, const path& attributes, error_code& ec) noexcept; //bool create_directory(const path& p, const path& attributes, error_code& ec) noexcept;
bool create_directory(const nana::string& dir, bool & if_exist); bool create_directory(const nana::string& dir, bool & if_exist);
bool create_directory(const path& p, bool & if_exist) inline bool create_directory(const path& p, bool & if_exist)
{ {
return create_directory(p.name(), if_exist); return create_directory(p.name(), if_exist);
}; };