我正在尝试使用 std::unique_pointer 并为其提供自定义 lambda 删除器,但出现语法错误:
cannot convert from 'wmain::<lambda_0f8f736f48c52ca6fa24492e7c0c1ec0>' to 'const std::default_delete<_Ty>'
使用以下简单、最少的代码:
#include <memory>
class TestClass
{
};
typedef std::unique_ptr<TestClass> TestClassPtr;
int _tmain(int argc, _TCHAR* argv[])
{
TestClassPtr testPtr(new TestClass(), [](TestClass* w){ delete w;});
return 0;
}
这是为智能指针提供 lambda 删除器的错误方法吗?