1 #ifndef SILICIUM_RELATIVE_PATH_HPP
2 #define SILICIUM_RELATIVE_PATH_HPP
6 #include <boost/filesystem/path.hpp>
27 : m_value(value.c_str())
37 template <std::
size_t N>
39 : m_value(c_str_literal)
49 template <std::
size_t N>
51 : m_value(c_str_literal)
56 template <
class Iterator>
63 : m_value(
std::
move(other.m_value))
68 : m_value(other.m_value)
80 m_value = other.m_value;
86 m_value.
swap(other.m_value);
90 boost::filesystem::path
101 boost::filesystem::path
const &
111 char_type
const *
c_str() const BOOST_NOEXCEPT
113 return m_value.
c_str();
134 template <
class ComparableToPath>
141 template <
class ComparableToPath>
151 return right == left.
c_str();
157 return left == right.
c_str();
166 template <
class ComparableToPath>
170 return !(left == right);
173 template <
class ComparableToPath>
177 return !(left == right);
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
SILICIUM_USE_RESULT std::size_t hash_value(relative_path const &value)
Definition: relative_path.hpp:187
SILICIUM_USE_RESULT relative_path leaf(absolute_path const &whole)
Definition: absolute_path.hpp:227
relative_path(noexcept_string const &value)
Definition: relative_path.hpp:18
BOOST_STATIC_ASSERT(Si::is_handle< absolute_path >::value)
SILICIUM_USE_RESULT char_type const * c_str() const BOOST_NOEXCEPT
Definition: relative_path.hpp:111
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
Definition: absolute_path.hpp:352
Definition: absolute_path.hpp:19
BOOST_CONSTEXPR Iterator const & end(iterator_range< Iterator > const &range)
Definition: iterator_range.hpp:136
boost::container::string noexcept_string
Definition: noexcept_string.hpp:26
relative_path(boost::filesystem::path const &value)
Definition: relative_path.hpp:23
noexcept_string const & underlying() const BOOST_NOEXCEPT
Definition: path.hpp:124
relative_path() BOOST_NOEXCEPT
Definition: relative_path.hpp:14
void swap(relative_path &other) BOOST_NOEXCEPT
Definition: relative_path.hpp:84
relative_path(Iterator begin, Iterator end)
Definition: relative_path.hpp:57
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
relative_path(char_type const *c_str)
Definition: relative_path.hpp:32
SILICIUM_USE_RESULT bool operator<(absolute_path const &left, absolute_path const &right)
Definition: absolute_path.hpp:214
relative_path(relative_path const &other)
Definition: relative_path.hpp:67
SILICIUM_USE_RESULT std::size_t operator()(Si::relative_path const &value) const
Definition: relative_path.hpp:221
SILICIUM_USE_RESULT boost::filesystem::path to_boost_path() const
Definition: relative_path.hpp:94
SILICIUM_USE_RESULT noexcept_string const & underlying() const BOOST_NOEXCEPT
Definition: relative_path.hpp:105
relative_path & operator=(relative_path &&other) BOOST_NOEXCEPT
Definition: relative_path.hpp:72
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
relative_path(relative_path &&other) BOOST_NOEXCEPT
Definition: relative_path.hpp:62
SILICIUM_USE_RESULT bool empty() const BOOST_NOEXCEPT
Definition: relative_path.hpp:117
void swap(path &other) BOOST_NOEXCEPT
Definition: path.hpp:101
Definition: relative_path.hpp:10
#define SILICIUM_USE_RESULT
Definition: config.hpp:147
native_path_char char_type
Definition: relative_path.hpp:12
relative_path(char_type const (&c_str_literal)[N])
Definition: relative_path.hpp:38