]> git.tdb.fi Git - libs/core.git/blobdiff - source/fs/path.h
Add move semantics to Variant
[libs/core.git] / source / fs / path.h
index e0b593caf2099839d2f517deb2a3b2b0e4e89ffb..1b15047cc528ece01f9d2061fcd0fd3740dedfef 100644 (file)
@@ -4,6 +4,7 @@
 #include <ostream>
 #include <string>
 #include <vector>
+#include <msp/core/mspcore_api.h>
 
 namespace Msp {
 namespace FS {
@@ -28,13 +29,13 @@ A path can also be treated as an array of components, supporting indexing,
 iteration and slicing.  In this context the root directory is treated as a
 component of its own.
 */
-class Path
+class MSPCORE_API Path
 {
 private:
        typedef std::vector<std::string::size_type> PositionArray;
 
 public:
-       class Iterator
+       class MSPCORE_API Iterator
        {
        public:
                typedef PositionArray::difference_type difference_type;
@@ -70,13 +71,10 @@ private:
        PositionArray separators;
 
 public:
-       Path();
+       Path() = default;
        Path(const std::string &);
-       Path(const char *);
-private:
-       void init(const std::string &);
+       Path(const char *p): Path(std::string(p)) { }
 
-public:
        /// Returns the path as a string.
        const std::string &str() const { return path; }