初始化静态地图

时间:2019-05-19 06:01:13

标签: c++ static

我想在不实例化readFromMap的情况下呼叫HelperClass

所以我想检查是否可以在类加载时调用readIntoMapFromDataStore

因此,始终在调用readFromMap之前初始化该映射吗?

初始化静态地图

class HelperClass {

static map<string, string> cache;

static string readFromMap(string key) {
return cache.at(key);
}

static void readIntoMapFromDataStore() {
//read contents into cache from datastore
}
}

如何在调用readFromMap之前进行初始化?

1 个答案:

答案 0 :(得分:0)

应该通过返回地图对象的函数来完成地图填充,NRVO将消除临时对象。您可以通过使用静态成员定义中的初始化来连接它:

std::map<std::string, std::string> HelperClass::cache{HelperClass::readIntoMapFromDataStore()};