3 #include <core_api/lsglobaldefinitions.h>
8 class LSInterface_Implementation;
18 CORE_API_EXPORT
explicit LSInterface(LSInterface_Implementation*);
23 friend class LSInterface_Implementation;
24 LSInterface_Implementation* m_implementation;
27 #define LS_INTERFACE(Class, BaseClass) \
28 friend class Class##_Implementation; \
29 inline Class(Class##_Implementation* implementation) : BaseClass((BaseClass##_Implementation*)implementation) {}
31 #define LS_INTERFACE_TEMPLATE(Class, TemplateType, BaseClass) \
32 template <class T> friend class Class##_Implementation; \
33 inline Class(Class##_Implementation<TemplateType>* implementation) : BaseClass((BaseClass##_Implementation*)implementation) {}
35 #define LS_INTERFACE_TEMPLATE2(Class, TemplateType, BaseClass) \
36 template <class T> friend class Class##_Implementation; \
37 inline Class(Class##_Implementation<TemplateType>* implementation) : BaseClass<TemplateType>((BaseClass##_Implementation<TemplateType>*)implementation) {}