【问题标题】:What does Clang's 'type_visibility' attribute do, and when should one use it?Clang 的 'type_visibility' 属性有什么作用,什么时候应该使用它?
【发布时间】:2015-04-10 20:17:25
【问题描述】:

它在 libc++ 中用于许多模板类型,例如 tuple_element、tuple 等。

据我所知,除了在 clang 项目中介绍它的 commit message 和这个 unit test 之外,没有任何关于它的公开文档。

【问题讨论】:

标签: c++ c++11 clang libc++


【解决方案1】:

此属性允许类型的ELF visibility 和(可能)它的模糊链接对象(vtable、typeinfos)与该类型的函数和数据成员的可见性分开控制。

这使得 typeinfos 和 vtable 可以集中定位,例如,模板化多态类型的显式实例化,而不会强制该类型的私有静态数据成员的默认可见性 - 为没有人实际访问的东西导出符号使用共享库时,跨越库边界会浪费运行时和符号表空间。

【讨论】:

    猜你喜欢
    • 2012-06-02
    • 2014-09-29
    • 2011-02-21
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 2012-06-10
    相关资源
    最近更新 更多