* @since 2.0
*
* @param[in] deleter The function pointer to type of the element deleter
- * @remarks To create an owing collection, set the element deleter value as @c SingleObjectDeleter. This gives the collection the ownership of elements and the collection will destroy elements. @n
+ * @remarks To create an owning collection, set the element deleter value as @c SingleObjectDeleter. This gives the collection the ownership of elements and the collection will destroy elements. @n
* On the other hand, to create a non-owning collection, you do not need to set the element deleter value, as @c NoOpDeleter is the default element deleter.
* It means that you do not transfer the ownership of elements to the collection.
* @see NoOpDeleter()
virtual Object* GetAt(int index);
/**
+ * Gets the reference of the object at the specified index of the calling list.
+ *
+ * @since 3.0
+ *
+ * @return The reference of the object at the specified index of the list
+ * @param[in] index The index of the object to read
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_OUT_OF_RANGE The specified index is outside the bounds of the data structure, or
+ * the specified @c index is equal to or greater than the number of elements or less than @c 0.
+ * @remarks The specific error code can be accessed using the GetLastResult() method.
+ */
+ virtual Object*& GetAtRef(int index);
+
+ /**
* Gets an IList with the specified range from the calling list object.
*
* @since 2.0