【发布时间】:2011-08-15 20:03:19
【问题描述】:
我是自动指针的新手。我有这个:
std::auto_ptr<myClass> myPointer(new MyClass(someArg));
如何测试能否成功实例化myPointer?我试过if (myPointer==NULL),编译器报错:
没有运算符“==”与这些操作数匹配。
【问题讨论】:
-
始终尝试完整地逐字复制错误消息。编译器通常会在你看到它们之前删除所有不重要的部分。
-
说真的,这里的“实例化”是什么意思?
-
我认为我能否成功实例化myPointer仅表示myPointer是否创建成功。问题及其答案 - 最重要的是the one of Lightness Races in Orbit - 如果没有这种分心,可能会更好。
-
记住奥卡姆的剃刀男(和女)。发布的代码通常会被修剪以减少冗长,并且不一定会在分配 myPointer 之后立即执行 NULL/nullptr 测试。
-
@brewmanz:如果 OP 将代码“修剪”得如此之多以至于它实际上不再证明问题,那么这与奥卡姆剃刀相反。作为一个问题也完全没有用。