Meyers Singleton:静态关键字混淆

时间:2018-12-11 14:18:18

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

考虑以下一段代码,本质上是迈尔单身的一个例子(希望如此)

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

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

1 个答案:

答案 0 :(得分:8)

  

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

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