is_path_like
Determine if T
can be treated like std::filesystem::path
during conversions.
Synopsis
Defined in header <boost/json/conversion.hpp>.
template<
class T>
struct is_path_like;
Description
Given t
, a glvalue of type T
, if
-
given
It
, the type denoted bydecltype(std::begin(t))
,std::iterator_traits<It>::iterator_category
is well-formed and denotes a type; and -
std::iterator_traits<It>::value_type
isT
; and -
T::value_type
is well-formed and denotes a type; and -
T::string_type
is well-formed, denotes a type, and is an alias forstd::basic_string< T::value_type >
;
then the trait provides the member constant value
that is equal to true
. Otherwise, value
is equal to false
.
Users can specialize the trait for their own types if they don’t want them to be treated like filesystem paths. For example:
namespace boost {
namespace json {
template <>
struct is_path_like<your::path> : std::false_type
{ };
} // namespace boost
} // namespace json
Types satisfying the trait
std::filesystem::path
, boost::filesystem::path
.
See Also
Convenience header <boost/json.hpp>.