什么是 _LIBCPP_INLINE_VISIBILITY?
What is _LIBCPP_INLINE_VISIBILITY?
LLVM libc++ 头文件有一个宏,用于函数声明,名为 _LIBCPP_INLINE_VISIBILITY
。
没看懂是什么意思;我查看了它的定义,上面写着:
// Just so we can migrate to the new macros gradually.
#define _LIBCPP_INLINE_VISIBILITY _LIBCPP_HIDE_FROM_ABI
...第二个宏没有我能找到的定义。那么,_LIBCPP_INLINE_VISIBILITY
是什么意思,它通常扩展成什么?
(谢谢,@Ruslan)
目的是隐藏标有它的函数,使其不出现在动态库中(“从 ABI 中隐藏”)。过去只能通过制作这样的函数 inline
来完成,但现在使用了 clang 属性 attribute((internal_linkage))
;那就是 _LIBCPP_HIDE_FROM_ABI
.
的定义
至于 inline-for-invisibility 宏 _LIBCPP_INLINE_VISIBILITY
- 你看到的是它被重新定义为它的名字 应该 的名字。
LLVM libc++ 头文件有一个宏,用于函数声明,名为 _LIBCPP_INLINE_VISIBILITY
。
没看懂是什么意思;我查看了它的定义,上面写着:
// Just so we can migrate to the new macros gradually.
#define _LIBCPP_INLINE_VISIBILITY _LIBCPP_HIDE_FROM_ABI
...第二个宏没有我能找到的定义。那么,_LIBCPP_INLINE_VISIBILITY
是什么意思,它通常扩展成什么?
(谢谢,@Ruslan)
目的是隐藏标有它的函数,使其不出现在动态库中(“从 ABI 中隐藏”)。过去只能通过制作这样的函数 inline
来完成,但现在使用了 clang 属性 attribute((internal_linkage))
;那就是 _LIBCPP_HIDE_FROM_ABI
.
至于 inline-for-invisibility 宏 _LIBCPP_INLINE_VISIBILITY
- 你看到的是它被重新定义为它的名字 应该 的名字。