返回常量的工厂函数

Factory function returning const

本文关键字:函数 工厂 常量 返回      更新时间:2023-10-16

我有一个基于丑陋容器创建容器的工厂

template<class T>
std::vector<T> containerFactory(const UglyContainer* uglyContainer)
{
    std::vector<T> container(uglyContainer->count);
    Getter getter;
    for(unsigned int i=0;i<uglyContainer->count;++i)
    {
        getter(container[i], uglyContainer->values[i]);
    }
    return container;
}

如何使用返回conststd::vector的工厂函数来补充containerFactory?

返回向量上的Const是不相关的。由于它是按值返回的,因此它将被复制,并且const将应用于副本的使用。

由于在工厂方法中在堆栈上创建向量,因此无法通过引用返回向量。

作为容器Factory的健壮性问题,您可以考虑将一个向量作为Factory方法的参数,并将其附加到它以避免向量的副本。