在(现有的)代码中,使用了一个共享指针实现“xBinSp”,它与std :: shared_ptr类似。有一些方法定义为将NULL共享指针交给引用?
setBinaryValue(xBinSp &bin);
其中这样的共享指针对象必须被移交。现在有些情况下,NULL(意味着xBinSp())将不得不移交。
调用
setBinaryValue(xBinSp());
导致一个警告
警告C4239:使用非标准扩展: '参数':从 'xBinSp' 转换为 'xBinSp &'
所以我的问题:如何我可以正确地交出“NULL”的东西 - 就像这种情况下,当方法期望引用这样的共享指针吗?创建自己的变量和使用它似乎是一些浪费资源给我...
谢谢!
我只是通过'xBinSp'。 –
我看到答案中解释了机制,但为什么根本不调用函数。它有其他副作用,然后修改参数? – Marius
函数HAS将被调用由应用程序本身的逻辑定义,以重置可能早先设置的其他二进制值。所以这是一个合法的状态,将二进制数据(即空指针又名空共享指针)交给这个方法。 – Elmi