关于模板类和迭代器转换的问题 2C

template

然后在类中定义如下:
class CDataList
{
public:
MUTEX m_mutex;
list m_list;
... ...
};

实现中,重定义list的begin()方法:
typename list::iterator begin()
{
try
{
typename list::iterator ite;

        //加锁

        ite = m_list.begin();

        //解锁

        return ite;
    }
    catch (...) 
    {
    //这里想实现返回迭代器指向空的情况。
        return (typename list<XJ_LIST_TYPE>::iterator)0;
    }
};

在windows编译对应使用该类的程序,报catch中的数据类型转换错误。

但在linux下可以编译成功。

求大神指点一二。

本人钱不多,只有这么多了。谢谢!

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问