我初始化一個auto_ptr爲NULL,後來在遊戲中我需要知道它是否有NULL或不返回它或新副本。三元運算符對auto_ptr內容不起作用
我已經試過這
auto_ptr<RequestContext> ret = (mReqContext.get() != 0) ? mReqContext : new RequestContext();
和其他一些類似的東西,鑄造等,但G ++試圖調用auto_ptr對象不存在操作? (三元運算符),而不是使用RequestContext *進行三元比較。
即使我施放它也行不通。
任何提示?
編輯的相等非等
你說的「不工作」是什麼意思?您是否收到編譯錯誤消息,或者運行時行爲錯誤(您獲取的行爲是什麼)?爲什麼只有當它返回NULL時才返回mReqContext? – dave4420 2009-10-07 13:53:09
你是什麼意思,「g ++試圖調用auto_ptrs不存在的操作符?」 ? – 2009-10-07 13:53:35
顯然假設有過載(但?:不可重載) – MSalters 2009-10-07 14:24:38