WPILibC++ 2024.3.2
wpi::ForwardToPointerCast< To, From, ForwardTo > Struct Template Reference

Provides a cast trait that uses a defined pointer to pointer cast as a base for reference-to-reference casts. More...

#include </home/runner/work/allwpilib/allwpilib/wpiutil/src/main/native/thirdparty/llvm/include/wpi/Casting.h>

Static Public Member Functions

static bool isPossible (const From &f)
 
static decltype(auto) doCast (const From &f)
 

Detailed Description

template<typename To, typename From, typename ForwardTo>
struct wpi::ForwardToPointerCast< To, From, ForwardTo >

Provides a cast trait that uses a defined pointer to pointer cast as a base for reference-to-reference casts.

Note that it does not provide castFailed and doCastIfPossible because a pointer-to-pointer cast would likely just return nullptr which could cause nullptr dereference. You can use it like this:

template <> struct CastInfo<foo, bar *> { ... verbose implementation... };

template <> struct CastInfo<foo, bar> : public ForwardToPointerCast<foo, bar, CastInfo<foo, bar *>> {};

Member Function Documentation

◆ doCast()

template<typename To , typename From , typename ForwardTo >
static decltype(auto) wpi::ForwardToPointerCast< To, From, ForwardTo >::doCast ( const From &  f)
inlinestatic

◆ isPossible()

template<typename To , typename From , typename ForwardTo >
static bool wpi::ForwardToPointerCast< To, From, ForwardTo >::isPossible ( const From &  f)
inlinestatic

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