有一个参考包装器的向量是否有任何缺点?

时间:2018-03-10 16:21:47

标签: c++

我需要一个基类的向量,我看到解决方案的任何地方都将它存储为指针。但是,由于缺乏值语义,存储指针会使事情变得更难使用。

struct base
{
    int a = 10;
};

struct derived : public base
{
    int b = 5;
};

int main()
{
    std::vector<std::reference_wrapper<base>> vec;
    vec.push_back(*(new derived));

    auto elem = static_cast<derived*>(&vec.at(0).get());
    std::cout << elem->b << std::endl; // prints 5
    return 0;
}

将它们存储为std::reference_wrapper是否有任何缺点?

0 个答案:

没有答案