#ifndef PATH_H #define PATH_H #include #include #include class Path { public: static std::string dirname(const std::string & s); template static std::string join(Parts... parts) { return _join(parts...); } static bool is_file(const std::string & s); static bool is_dir(const std::string & s); static std::shared_ptr>> listdir(const std::string & path); static std::string clean(const std::string & s); protected: static std::string _join(const std::string & first, const std::string & second); template static std::string _join(const std::string & first, const std::string & second, Parts... more) { return _join(_join(first, second), more...); } }; #endif