这个问题与使用std::unique_ptr作为值初始化静态std::map类似。但是在我的问题中,map应该是只读的。那么,我该如何初始化一个静态的const map,其中值是std::unique_ptr?
在这种情况下,静态函数内的初始化不起作用。
通过初始化列表进行初始化也不起作用。
static const std::map<int, std::unique_ptr<MyClass>>
在这种情况下,静态函数内的初始化不起作用。
std::map<int, std::unique_ptr<MyClass>> init()
{
std::map<int, std::unique_ptr<MyClass>> mp;
mp[0] = std::make_unique<MyClass>();
mp[1] = std::make_unique<MyClass>();
//...etc
return mp;
}
通过初始化列表进行初始化也不起作用。
const std::map<int, std::unique_ptr<MyClass>> = {
{ 0, std::make_unique<MyClass>() }
const std::map<int, std::unique_ptr<MyClass>> mp = {...}
吗? - felix