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
意味着什么,它通常扩展到什么程度?
发布于 2019-12-13 13:20:12
(谢谢,@Ruslan)
其目的是隐藏标记为它的函数,以免出现在动态库中(“从ABI中隐藏”)。这以前只通过使这些函数为inline
来完成,但现在使用的是clang属性attribute((internal_linkage))
;这就是_LIBCPP_HIDE_FROM_ABI
的定义。
至于内联不可见宏_LIBCPP_INLINE_VISIBILITY
,您看到的是它被重新定义为它应该使用的名称。
https://stackoverflow.com/questions/59322656
复制相似问题