The question is similar with Initialize static std::map with unique_ptr as value . But in my question map should be readonly. so, how can i initilize static const map, where value is std::unique_ptr:
static const std::map<int, std::unique_ptr<MyClass>>
In this case initialization inside static function doesn't work,
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;
}
Initilization via initilization list doesn't work as well
const std::map<int, std::unique_ptr<MyClass>> = {
{ 0, std::make_unique<MyClass>() }