The class is used as a return type for operations that can fail; wraps a value of type T or an RError.
RResult enforces checking whether it contains a valid value or an error state. If the RResult leaves the scope unchecked, it will throw an exception (due to ~RResultBase).
Definition at line 196 of file RError.hxx.
Public Member Functions | |
| RResult (const RResult &other)=delete | |
| RResult (const T &value) | |
| RResult (RError &&error) | |
| RResult (RResult &&other)=default | |
| RResult (T &&value) | |
| ~RResult ()=default | |
| RResult & | Forward (RError::RLocation &&sourceLocation) | 
| Used by R__FORWARD_RESULT in order to keep track of the stack trace in case of errors.   | |
| const T & | Inspect () | 
| If the operation was successful, returns a const reference to the inner type.   | |
| operator bool () | |
| RResult & | operator= (const RResult &other)=delete | 
| RResult & | operator= (RResult &&other)=default | 
| T | Unwrap () | 
| If the operation was successful, returns the inner type by value.   | |
  Public Member Functions inherited from ROOT::Experimental::Internal::RResultBase | |
| RResultBase (const RResultBase &other)=delete | |
| RResultBase (RResultBase &&other)=default | |
| ~RResultBase () noexcept(false) | |
| RError * | GetError () | 
| void * | operator new (std::size_t size)=delete | 
| void * | operator new (std::size_t, void *)=delete | 
| void * | operator new[] (std::size_t)=delete | 
| void * | operator new[] (std::size_t, void *)=delete | 
| RResultBase & | operator= (const RResultBase &other)=delete | 
| RResultBase & | operator= (RResultBase &&other)=default | 
| void | Throw () | 
| Throws an RException with fError.   | |
Private Member Functions | |
| void | ThrowOnError () | 
Private Attributes | |
| T | fValue | 
| The result value in case of successful execution.   | |
Additional Inherited Members | |
  Static Public Member Functions inherited from ROOT::Experimental::Internal::RResultBase | |
| static RError | ForwardError (RResultBase &&result, RError::RLocation &&sourceLocation) | 
| Used by R__FORWARD_ERROR in order to keep track of the stack trace.   | |
  Protected Member Functions inherited from ROOT::Experimental::Internal::RResultBase | |
| RResultBase ()=default | |
| RResultBase (RError &&error) | |
| bool | Check () | 
| Used by the RResult<T> bool operator.   | |
  Protected Attributes inherited from ROOT::Experimental::Internal::RResultBase | |
| std::unique_ptr< RError > | fError | 
| This is the nullptr for an RResult representing success.   | |
| bool | fIsChecked {false} | 
| Switches to true once the user of an RResult object checks the object status.   | |
#include <ROOT/RError.hxx>
      
  | 
  inline | 
Definition at line 216 of file RError.hxx.
      
  | 
  inline | 
Definition at line 217 of file RError.hxx.
      
  | 
  inline | 
Definition at line 218 of file RError.hxx.
      
  | 
  delete | 
      
  | 
  default | 
      
  | 
  default | 
      
  | 
  inline | 
Used by R__FORWARD_RESULT in order to keep track of the stack trace in case of errors.
Definition at line 228 of file RError.hxx.
      
  | 
  inline | 
If the operation was successful, returns a const reference to the inner type.
If there was an error, Inspect() instead throws an exception.
Definition at line 236 of file RError.hxx.
      
  | 
  inlineexplicit | 
Definition at line 253 of file RError.hxx.
      
  | 
  delete | 
      
  | 
  default | 
      
  | 
  inlineprivate | 
Definition at line 202 of file RError.hxx.
      
  | 
  inline | 
If the operation was successful, returns the inner type by value.
For move-only types, Unwrap can only be called once, as it yields ownership of the inner value to the caller using std::move, potentially leaving the RResult in an unspecified state.
If there was an error, Unwrap() instead throws an exception.
Definition at line 248 of file RError.hxx.
      
  | 
  private | 
The result value in case of successful execution.
Definition at line 199 of file RError.hxx.