【问题标题】:Meyers Singleton : static keyword confusion [duplicate]Meyers Singleton:静态关键字混淆[重复]
【发布时间】:2019-05-12 13:23:36
【问题描述】:

考虑以下一段代码,它本质上是 Meyer 单例的示例(希望如此)

static const std::string& foo() // Line 1
{
   static std::string str("foo");
   return str;
}

第 1 行中提到的 static 关键字没有意义吗?如果有,为什么?

【问题讨论】:

  • @Evg 第一行是函数签名。不是静态变量。
  • @Evg 垃圾值

标签: c++ c++11 visual-c++ singleton


【解决方案1】:

第 1 行中提到的 static 关键字没有意义吗?如果有,为什么?

这不是没有意义,是否需要取决于您的情况。 C++ 中的static 在不同的上下文中表示不同的东西,在这种情况下,它使此功能仅在当前编译单元上可用。在 C++ 中执行此操作的现代方法 - 将函数放入匿名命名空间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    相关资源
    最近更新 更多