ADTF
Loading...
Searching...
No Matches
adtf::ucom::catwo::detail Namespace Reference

Namespace for all internally used functionality implemented. More...

Classes

struct  base_dispatcher
 
struct  base_dispatcher< BaseClass, typename std::enable_if<!is_interface< BaseClass >::value &&!has_get_interface< BaseClass >::value >::type >
 This template is for base classes that are no interfaces and do not implement IObject. More...
 
struct  base_dispatcher< BaseClass, typename std::enable_if<!is_interface< BaseClass >::value &&has_get_interface< BaseClass >::value >::type >
 This template forwards a GetInterface call to a base class. More...
 
struct  base_dispatcher< Interface, typename std::enable_if< is_interface< Interface >::value >::type >
 This template returns a pointer to the implemented Interface if requested. More...
 
struct  base_dispatcher< void, void >
 
class  derive_from
 
class  derive_from_with_hierarchy
 
class  derive_from_without_hierarchy
 
class  expose_additional_interfaces
 
class  has_get_interface
 template that checks whether a type has an accessible (protected or public) GetInterface method. More...
 
class  has_interface_type
 template that checks whether a type has an accessible interface_type property. More...
 
struct  is_interface
 template that checks whether a type is an interface with an IID. More...
 
struct  is_interface< T, typename std::enable_if< has_interface_type< T >::value &&!is_interface_helper< T >::value >::type >
 
struct  is_interface< T, typename std::enable_if< has_interface_type< T >::value &&is_interface_helper< T >::value >::type >
 
struct  is_interface< T, typename std::enable_if<!has_interface_type< T >::value >::type >
 
class  object_without_iobject
 This template is used to prevent an ambiguous base of ucom::ant::IObject. More...
 
class  object_without_iobject< Base, Bases... >
 This template is used to prevent an ambiguous base of ucom::ant::IObject. More...
 
struct  parent_follows_child
 this template checks if parent interfaces are not specified before their children More...
 
struct  parent_follows_child< Base, NextBase, Bases... >
 this template checks if parent interfaces are not specified before their children More...
 

Typedefs

template<typename T>
using is_interface_helper = std::is_same<T, typename T::interface_type>
 
template<typename Base, typename NextBase>
using derive_from_type
 this intermediate type is used to keep binary compatibility
 

Detailed Description

Namespace for all internally used functionality implemented.

Typedef Documentation

◆ derive_from_type

template<typename Base, typename NextBase>
using adtf::ucom::catwo::detail::derive_from_type
Initial value:
typename std::conditional<std::is_same<NextBase, object_without_iobject<>>::value,
typename std::conditional<std::is_base_of<Base, NextBase>::value,
typename std::conditional<std::is_base_of<ucom::ant::IObject, Base>::value,

this intermediate type is used to keep binary compatibility