2015-08-08 26 views
0

我有一个类似的代码:ReSharper的C++和RAII - 未使用的局部变量

std::unique_ptr<Object> get_raii_object() 
{ 
    return std::make_unique<Object>(/* Many parameters that I don't want to write several times, if I remove this function altogether */); 
} 

void some_code() 
{ 
    std::unique_ptr<Object> raii_object_holder = get_raii_object(); 
    more_code(); 
} 

ReSharper的C++标记 “raii_object_holder” 为未使用的局部变量,尽管它是必要的。

我宁愿避免禁用此警告,在本地或全局

+0

在我看来,你可以尽量避免使用的unique_ptr完全因为对象仅仅需要构建和销毁。会帮助resharper? –

+0

查看我添加的评论。这会使我将ctor params创作复制到几个地方。 – user972014

+0

到目前为止,ReSharper for C++中使用的解析器仍在不断发展。如果你看看他们最新的EAP或者团队博客,你可以看到哪些例子会有巨大的改进。不太确定这是否已被修复,但您应该直接向JetBrains报告。 –

回答

0

为什么不:

class ConfiguredObject : public Object 
{ 
public: 
    ConfiguredObject() 
    : Object(/* Many parameters that I don't want to write several times, if I remove this function altogether */) 
    {} 
}; 

void some_code() 
{ 
    ConfiguredObject object_holder; 
}