25 const auto dynamicCast ()
const 27 return dynamic_cast<const T*
> (
this);
33 return dynamic_cast<T*
> (
this);
38 using InterfacePtr = std::shared_ptr<Interface>;
41 template <
typename Iface,
typename T>
42 inline auto dynamicPtrCast (std::shared_ptr<T>& obj)
44 return std::dynamic_pointer_cast<Iface> (obj);
48 template <
typename Iface,
typename T>
49 inline const auto dynamicPtrCast (
const std::shared_ptr<T>& obj)
51 return std::dynamic_pointer_cast<Iface> (obj);
55 template <
typename Iface,
typename T>
56 inline auto staticPtrCast (std::shared_ptr<T>& obj)
58 return std::static_pointer_cast<Iface> (obj);
62 template <
typename Iface,
typename T>
63 inline const auto staticPtrCast (
const std::shared_ptr<T>& obj)
65 return std::static_pointer_cast<Iface> (obj);
69 template <
typename Iface,
typename T>
70 inline const auto& asInterface (
const T& obj)
72 return static_cast<const Iface&
> (obj);
Definition: interface.h:13
Definition: customcontrols.cpp:8