fs/Traits: GetParent() returns std::string_view
This commit is contained in:
@@ -64,7 +64,7 @@ GetBasePathImpl(typename Traits::const_pointer p) noexcept
|
||||
}
|
||||
|
||||
template<typename Traits>
|
||||
typename Traits::string
|
||||
typename Traits::string_view
|
||||
GetParentPathImpl(typename Traits::const_pointer p) noexcept
|
||||
{
|
||||
#if !CLANG_CHECK_VERSION(3,6)
|
||||
@@ -81,7 +81,7 @@ GetParentPathImpl(typename Traits::const_pointer p) noexcept
|
||||
if (Traits::IsDrive(p) && sep == p + 2)
|
||||
return {p, 3u};
|
||||
#endif
|
||||
return {p, sep};
|
||||
return {p, size_t(sep - p)};
|
||||
}
|
||||
|
||||
template<typename Traits>
|
||||
@@ -130,7 +130,7 @@ PathTraitsFS::GetBase(PathTraitsFS::const_pointer p) noexcept
|
||||
return GetBasePathImpl<PathTraitsFS>(p);
|
||||
}
|
||||
|
||||
PathTraitsFS::string
|
||||
PathTraitsFS::string_view
|
||||
PathTraitsFS::GetParent(PathTraitsFS::const_pointer p) noexcept
|
||||
{
|
||||
return GetParentPathImpl<PathTraitsFS>(p);
|
||||
@@ -168,7 +168,7 @@ PathTraitsUTF8::GetBase(const_pointer p) noexcept
|
||||
return GetBasePathImpl<PathTraitsUTF8>(p);
|
||||
}
|
||||
|
||||
PathTraitsUTF8::string
|
||||
PathTraitsUTF8::string_view
|
||||
PathTraitsUTF8::GetParent(const_pointer p) noexcept
|
||||
{
|
||||
return GetParentPathImpl<PathTraitsUTF8>(p);
|
||||
|
||||
@@ -138,7 +138,7 @@ struct PathTraitsFS {
|
||||
* separator in the given input string.
|
||||
*/
|
||||
gcc_pure gcc_nonnull_all
|
||||
static string GetParent(const_pointer p) noexcept;
|
||||
static string_view GetParent(const_pointer p) noexcept;
|
||||
|
||||
/**
|
||||
* Determine the relative part of the given path to this
|
||||
@@ -247,7 +247,7 @@ struct PathTraitsUTF8 {
|
||||
* separator in the given input string.
|
||||
*/
|
||||
gcc_pure gcc_nonnull_all
|
||||
static string GetParent(const_pointer p) noexcept;
|
||||
static string_view GetParent(const_pointer p) noexcept;
|
||||
|
||||
/**
|
||||
* Determine the relative part of the given path to this
|
||||
|
||||
Reference in New Issue
Block a user