Go to the documentation of this file. 1 #ifndef AUBO_SCOPE_CLASS_FORWARD_H 2 #define AUBO_SCOPE_CLASS_FORWARD_H 6 #if defined(ARCS_ABI_EXPORT) 7 #elif defined(ARCS_PLATFORM_WINDOWS) 8 #define ARCS_ABI_EXPORT __declspec(dllexport) 9 #define ARCS_ABI_IMPORT __declspec(dllimport) 10 #define ARCS_ABI_LOCAL 11 #elif defined(ARCS_HAVE_VISIBILITY_ATTRIBUTE) 12 #define ARCS_ABI_EXPORT __attribute__((visibility("default"))) 13 #define ARCS_ABI_IMPORT __attribute__((visibility("default"))) 14 #define ARCS_ABI_LOCAL __attribute__((visibility("hidden"))) 16 #define ARCS_ABI_EXPORT 17 #define ARCS_ABI_IMPORT 18 #define ARCS_ABI_LOCAL 36 #define ARCS_DECLARE_PTR(Name, Type) \ 37 typedef std::shared_ptr<Type> Name##Ptr; \ 38 typedef std::shared_ptr<const Type> Name##ConstPtr; \ 39 typedef std::weak_ptr<Type> Name##WeakPtr; \ 40 typedef std::weak_ptr<const Type> Name##ConstWeakPtr; \ 41 typedef std::unique_ptr<Type> Name##UniquePtr; \ 42 typedef std::unique_ptr<const Type> Name##ConstUniquePtr 54 #define ARCS_DECLARE_PTR_MEMBER(Type) \ 55 typedef std::shared_ptr<Type> Ptr; \ 56 typedef std::shared_ptr<const Type> ConstPtr; \ 57 typedef std::weak_ptr<Type> WeakPtr; \ 58 typedef std::weak_ptr<const Type> ConstWeakPtr; \ 59 typedef std::unique_ptr<Type> UniquePtr; \ 60 typedef std::unique_ptr<const Type> ConstUniquePtr 68 #define ARCS_CLASS_FORWARD(C) \ 70 ARCS_DECLARE_PTR(C, C) 77 #define ARCS_STRUCT_FORWARD(C) \ 79 ARCS_DECLARE_PTR(C, C)