代码之家  ›  专栏  ›  技术社区  ›  camino

在这种情况下,windows保证内联成员函数中定义的静态变量在模块(dll/exe)中是唯一的?[复制]

  •  1
  • camino  · 技术社区  · 7 年前

    这是 this question .
    如对答复的评论所述:

    内联变量具有- 它在每个翻译单元都有相同的地址 . […]通常通过在cpp文件中定义变量来实现这一点,但是使用内联说明符,您只需在头文件中声明/定义变量,并且使用此内联变量的每个翻译单元都使用完全相同的对象。

    虽然该语言不能保证(甚至没有提到)当您跨共享库边界使用这个新特性时会发生什么,但它确实可以在我的机器上运行。

    换句话说,当涉及到共享库时,是否保证内联变量跨边界是唯一的还不清楚。有人用经验证明 它起作用了

    当一个内联变量跨边界使用时,是否有任何关于它的唯一性的保证,或者它只是一个我不应该依赖的实现细节?

    0 回复  |  直到 7 年前