diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-07-10 15:33:18 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-07-10 15:33:18 +0200 |
commit | 49cd0e47d3783bcc31521a2425061ca7fae07363 (patch) | |
tree | 9b050bfd78b75490200cf2d4231820d104a813ff /butl/path.ixx | |
parent | 02af7e788f3fef0dbba0ba49442054fb451f5bdc (diff) |
Implement path_cast(), path::simple()
Diffstat (limited to 'butl/path.ixx')
-rw-r--r-- | butl/path.ixx | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/butl/path.ixx b/butl/path.ixx index 0cbbeaf..3e8a9cc 100644 --- a/butl/path.ixx +++ b/butl/path.ixx @@ -25,6 +25,33 @@ namespace butl } #endif + // @@ Should only enable_if P is basic_path<C, K1>. + // + template <class P, class C, class K> + inline P + path_cast (const basic_path<C, K>& p) + { + return P (p.path_, false); + } + + template <class P, class C, class K> + inline P + path_cast (basic_path<C, K>&& p) + { + return P (std::move (p.path_), false); + } + + template <typename C, typename K> + inline bool basic_path<C, K>:: + simple () const + { + return +#ifndef _WIN32 + root () || +#endif + traits::find_separator (this->path_) == string_type::npos; + } + template <typename C, typename K> inline bool basic_path<C, K>:: absolute () const |