config.cc map初始化
#include "config.h"
Config::ConfigVarMap Config::s_datas;
test.cc
#include "log.h"
#include <iostream>
#include <time.h>
#include "config.h"
#include "singleton.h"
//ConfigVar<int>::ptr a = Config::Lookup("Systme.port", (int)8080, "aaa");
//指针a放外面会报错:段错误 (核心已转储)
int main(int argc, char const *argv[])
{
//放在这里就没事,不知道为什么
//CHI_LOG_DEBUG(CHI_LOG_ROOT()) << a->toSting()输出2022-06-27 11:18:44 /home/chi/Codes/tests/test.cc:12 34797 0 0 DEBUG root 8080
ConfigVar<int>::ptr a = Config::Lookup("Systme.port", (int)8080, "aaa");
auto i = LogManagerPtr::GetInstance()->getLogger("xxx");
CHI_LOG_DEBUG(CHI_LOG_ROOT()) << a->toSting();
return 0;
}
-----------------------------
//config.h
template <class T>
static typename ConfigVar<T>::ptr Lookup(const std::string &name, T val, const std::string &description = "")
{
typename ConfigVar<T>::ptr v(new ConfigVar<T>(name, val, description));
s_datas[name]=v;//map插入报段错误
return v;
}