【发布时间】:2011-09-09 15:19:05
【问题描述】:
我得到了如下结构和函数:
struct MYOVERLAPPED : public OVERLAPPED
{
//...
};
void func1(std::unique_ptr<MYOVERLAPPED> pBuf)
{
//...
};
我正在获得一个指向 MYOVERLAPPED 的指针,我想将它传递给 func1 函数。 我遇到的问题是,无论我尝试什么,我都会收到以下错误:
我已经尝试过的内容如下: 试一试:
std::unique_ptr<OVERLAPPED> pOver(//....)
HandleAcceptIndication(std::move(pOver));
错误:错误 1 错误 C2440:“正在初始化”:无法从 '_OVERLAPPED **' 到 'MYOVERLAPPED *'
尝试2:
HandleAcceptIndication(new ACCEPT_OVERLAPPED);
错误 1 错误 C2664:“HandleAcceptIndication”:无法转换 参数 1 从 'MYOVERLAPPED *' 到 'std::unique_ptr<_ty>'
任何人都知道我如何将 OVERLAPPED 的这个转换指针传递给 MYOVERLAPPED 到函数,以及为什么 Try2 也不起作用,因为我随便使用 std::unique_ptr<MYOVERLAPPED> pO(new MYOVERLAPPED) 确实起作用...?
【问题讨论】:
标签: c++ function parameters compiler-errors unique-ptr