我有一个模板类,我正在为一个行为有点像 C++ STL 中的容器类之一的项目工作,但是我在找出一种好的安全方法来实现它时遇到了一些问题。
一些背景知识:我正在尝试将一个名为 Artemis 的现有项目(一个实体系统框架)从 Java 移植到 C++。有一个名为 bag 的类,它本质上是一个 ArrayList,但它包含的项目存储在数组中并使用索引查找以便更快地访问,存储的元素大部分存储自己的索引,但这并不重要。
问题:好的,所以我有一个包含 T 数组(模板类型)的模板类。我的问题是 T 元素的返回。在我的T &Get(int index)
函数中,我想返回对给定索引处元素的引用,但我不知道如果该元素不存在该怎么办。我想返回类似 null 的东西,但这不起作用,因为T
不能保证 ' 的类型是指针。我可以让容器类包含T*
s,但是我会遇到一些奇怪的问题/复杂的事情,比如 int 和非指针 ( std::string
) 以及一些超出范围的项目(除非我复制了值?)。
有没有人有任何想法或知道内置 STL 容器如何解决这些问题?我希望我已经足够清楚我的要求......
链接:
我要移植的文件
先感谢您。