Path< Object > Class Template Reference

The Path class is a typesafe wrapper around ObjectPath. More...

Detailed Description

template<typename Object>
class Path< Object >

The Path class is a typesafe wrapper around ObjectPath.

The wrapper is compatible through inheritance. Given the type tree :

A
/ \
B C
|
B1

A Path<B1> will be converted automatically in Path<B> or Path<A> but not Path<C>.

Classes

struct  UnsafeDynamicCreation
 Use this if it is not possible to get a path. More...
 

Public Member Functions

 Path (const ObjectPath &obj, UnsafeDynamicCreation) noexcept
 
 Path (ObjectPath &&obj, UnsafeDynamicCreation) noexcept
 
 Path (const Object &obj) noexcept
 
template<typename U >
auto extend (const QString &name, const Id< U > &id) const &noexcept
 Add a new ObjectIdentifier at the end of the path and return a new path.
 
template<typename U >
auto extend (const QString &name, const Id< U > &id) &&noexcept
 
template<typename U >
auto extend (const Id< U > &id) const &noexcept
 Add a new ObjectIdentifier at the end of the path and return a new path.
 
template<typename U >
auto extend (const Id< U > &id) &&noexcept
 
template<typename U >
auto splitLast () const &
 Return a new path without the last element of this one.
 
template<typename U >
auto splitLast () &&
 
template<typename U >
 requires (in_relationship< U, Object >::value) Path(const Path< U > &other) noexcept
 
template<typename U >
 requires (in_relationship< U, Object >::value) Path(Path< U > &&other) noexcept
 
template<typename U >
 requires (in_relationship< U, Object >::value) Path &operator
 
 Path (const Path &) noexcept=default
 
 Path (Path &&) noexcept=default
 
Pathoperator= (const Path &) noexcept=default
 
Pathoperator= (Path &&) noexcept=default
 
Object & find (const score::DocumentContext &ctx) const
 
Object * try_find (const score::DocumentContext &ctx) const noexcept
 
const auto & unsafePath () const &noexcept
 
auto & unsafePath () &noexcept
 
auto && unsafePath () &&noexcept
 
bool valid () const noexcept
 

Friends

class ObjectPath
 
bool operator== (const Path &lhs, const Path &rhs) noexcept
 
bool operator!= (const Path &lhs, const Path &rhs) noexcept
 
uint qHash (const Path &obj, uint seed) noexcept
 

Member Function Documentation

◆ extend() [1/2]

template<typename Object >
template<typename U >
auto Path< Object >::extend ( const Id< U > &  id) &&
inlinenoexcept

Add a new ObjectIdentifier at the end of the path and return a new path. The previous path is now empty.

◆ extend() [2/2]

template<typename Object >
template<typename U >
auto Path< Object >::extend ( const QString &  name,
const Id< U > &  id 
) &&
inlinenoexcept

Add a new ObjectIdentifier at the end of the path and return a new path. The previous path is now empty.

◆ splitLast()

template<typename Object >
template<typename U >
auto Path< Object >::splitLast ( ) &&
inline

Return a new path without the last element of this one. The previous path is now empty.


The documentation for this class was generated from the following file: