什么是 _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 - 你看到的是它被重新定义为它的名字 应该 的名字。