1 #ifndef SILICIUM_PATH_HPP
2 #define SILICIUM_PATH_HPP
5 #include <boost/functional/hash.hpp>
7 #include <boost/filesystem/path.hpp>
16 boost::filesystem::path
31 explicit path(boost::filesystem::path
const &value)
35 : m_value(value.c_str())
45 template <std::
size_t N>
46 explicit path(char_type
const (&c_str_literal)[N])
47 : m_value(c_str_literal)
57 template <std::
size_t N>
58 explicit path(
char const (&c_str_literal)[N])
59 : m_value(c_str_literal)
64 template <
class Iterator>
76 m_value.swap(other.m_value);
81 : m_value(other.m_value)
88 m_value.swap(other.m_value);
97 m_value = other.m_value;
103 m_value.swap(other.m_value);
106 boost::filesystem::path
120 boost::filesystem::path
const &
129 char_type
const *
c_str() const BOOST_NOEXCEPT
131 return m_value.c_str();
146 template <
class ComparableToPath>
152 template <
class ComparableToPath>
160 return right == left.
c_str();
165 return left == right.
c_str();
173 template <
class ComparableToPath>
176 return !(left == right);
179 template <
class ComparableToPath>
182 return !(left == right);
path() BOOST_NOEXCEPT
Definition: path.hpp:22
SILICIUM_USE_RESULT optional< absolute_path > parent(absolute_path const &whole)
Definition: absolute_path.hpp:234
std::remove_reference< T >::type && move(T &&ref)
Definition: move.hpp:10
native_path_char char_type
Definition: path.hpp:13
SILICIUM_USE_RESULT relative_path leaf(absolute_path const &whole)
Definition: absolute_path.hpp:227
BOOST_STATIC_ASSERT(Si::is_handle< absolute_path >::value)
std::ostream & operator<<(std::ostream &out, absolute_path const &p)
Definition: absolute_path.hpp:144
char_type const * c_str() const BOOST_NOEXCEPT
Definition: path.hpp:129
std::size_t hash_value(path const &value)
Definition: path.hpp:190
Definition: absolute_path.hpp:352
Definition: absolute_path.hpp:19
path(path const &other)
Definition: path.hpp:80
BOOST_CONSTEXPR Iterator const & end(iterator_range< Iterator > const &range)
Definition: iterator_range.hpp:136
path(char_type const *c_str)
Definition: path.hpp:40
path(char_type const (&c_str_literal)[N])
Definition: path.hpp:46
path(boost::filesystem::path const &value)
Definition: path.hpp:31
boost::container::string noexcept_string
Definition: noexcept_string.hpp:26
path(Iterator begin, Iterator end)
Definition: path.hpp:65
path & operator=(path &&other) BOOST_NOEXCEPT
Definition: path.hpp:85
path(noexcept_string const &value)
Definition: path.hpp:26
path(path &&other) BOOST_NOEXCEPT
Definition: path.hpp:70
noexcept_string const & underlying() const BOOST_NOEXCEPT
Definition: path.hpp:124
std::size_t operator()(Si::path const &value) const
Definition: path.hpp:220
boost::filesystem::path to_boost_path() const
Definition: path.hpp:110
BOOST_CONSTEXPR Iterator const & begin(iterator_range< Iterator > const &range)
Definition: iterator_range.hpp:123
SILICIUM_USE_RESULT absolute_path operator/(absolute_path const &front, relative_path const &back)
Definition: absolute_path.hpp:246
SILICIUM_USE_RESULT bool operator==(absolute_path const &left, ComparableToPath const &right)
Definition: absolute_path.hpp:169
SILICIUM_USE_RESULT bool operator<(absolute_path const &left, absolute_path const &right)
Definition: absolute_path.hpp:214
noexcept_string underlying_type
Definition: path.hpp:20
SILICIUM_USE_RESULT std::size_t hash_value(absolute_path const &value)
Definition: absolute_path.hpp:220
SILICIUM_USE_RESULT bool operator!=(absolute_path const &left, ComparableToPath const &right)
Definition: absolute_path.hpp:201
char native_path_char
Definition: path_char.hpp:14
void swap(path &other) BOOST_NOEXCEPT
Definition: path.hpp:101