浏览该文件的文档. 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)
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
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)