我想在静态对象列表中创建,其中列表包含指针或对基类的引用。此列表将在命名空间范围内为常量静态。
列表可以是std :: vector,std :: array是原始数组。该列表旨在作为一种查找表,我必须从中创建多个。因此,我正在寻找简单易读的初始化。
我知道我们可以做到:
static MyObject Foo(1);
static MyObject* pFoo(&foo);
创建一个这样的数组是不可能的,我本质上喜欢做的是:
static std::vector<MyObject*> objects = { &MyObject(1), &MyObject(2) }
甚至更好地使用智能指针。但是这是不可能的,因为MyObject是临时的,并且不允许在初始化器对象列表中使用静态。
有没有其他方法可以直接创建带有指针或对基类的引用的静态列表?
C ++ 14或C ++ 17不是一个选项。