返回常量的工厂函数
Factory function returning const
我有一个基于丑陋容器创建容器的工厂
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方法的参数,并将其附加到它以避免向量的副本。
相关文章:
- 在 C++ 中返回新的构造函数(*this)工厂
- 编写可测试的代码 - lambda 函数和unique_ptr中的basic_istream工厂
- 没有用于初始化模拟工厂的匹配构造函数
- C++接口的工厂函数实现
- 使用宏替换工厂模式样式 API 中的"create()"函数
- 从类模板创建对象的工厂函数模板?
- 工厂:如何将临时智能指针传递给函数.C++
- 定义一个工厂函数,该函数返回指向在此工厂函数中创建的函数的指针
- 设计模式的工厂替代方法:具有不同构造函数的类
- 具有多个构造函数的C 通用工厂
- 重载右值和左值引用的工厂函数 - 高效初始化
- unique_ptr和前向声明:编写工厂函数的正确方法
- 使用自定义删除器返回unique_ptr的工厂函数
- 为什么从工厂函数分配向量并在循环中迭代它会导致段错误
- 将 C 结构工厂函数与其相应的 C++ 包装类构造函数合并
- 如何将一个类的构造函数的调用限制为仅其工厂类
- C 非堆工厂对象创建具有受保护的构造函数和复制构造函数
- 将构造函数参数传递给模板函数工厂
- 有没有一个C++习语来形容这个丑陋的构造函数/工厂
- CUDA设备函数工厂