我如何支持内部列表的基于范围的语句? (c++)

How can I support Range-based for Statement for an internal list? ( c++ )

我们有一些广泛使用的 classes 包装内部 std::list

template <class COLL_TYPE>
class OurColl
{
...
    private:
    std::list<COLL_TYPE> *m_pList;

我希望能够使用基于范围的 for 循环:

OurColl<int> listInts;
for ( int x : listInts )
{

}

这将不得不遍历底层 m_pList。

我觉得这个问题非常不同,因为它最接近 Chris Redford 在标记为重复的问题底部提供的答案。

此外,由于我在一个 class 中,模板包装了一个内部列表,所以有一点扭曲。

这似乎有效:

  typename std::list<COLL_TYPE>::iterator begin()
   {
      return m_pList->begin();
   }
   typename std::list<COLL_TYPE>::iterator end()
   {
      return m_pList->end();
   }
   typename std::list<COLL_TYPE>::const_iterator begin() const
   {
      return m_pList->begin();
   }
   typename std::list<COLL_TYPE>::const_iterator end() const
   {
      return m_pList->end();
   }