我想要一个工具来分析我的代码质量,经过一些谷歌搜索后,我想我明白Cyclomatic Complexity可以从这里开始.我试图让几个工具工作,但没有成功(发现大多数是为Java开发的).我的要求是:
我将不胜感激任何帮助
当我尝试编译以下代码时,出现错误 C2280。我猜编译器正在尝试复制 unique_ptr 或其他东西。
#include <memory>
std::pair<int, std::unique_ptr<int>> CreatePair()
{
std::unique_ptr<int> my_int(new int);
return { 1, std::move(my_int) };
}
std::unique_ptr<int> GetUinquePtr()
{
auto [ignore, unique_ptr] = CreatePair();
return unique_ptr; // <- Build error C2280 attempting to reference a deleted function
}
int main()
{
auto unique_ptr = GetUinquePtr();
}
Run Code Online (Sandbox Code Playgroud)
完整的错误消息:
error C2280: 'std::unique_ptr<int,std::default_delete<int>>::unique_ptr(const std::unique_ptr<int,std::default_delete<int>> &)': attempting to reference a deleted function
Run Code Online (Sandbox Code Playgroud)
如果我添加 std::move() 它就会起作用:
std::unique_ptr<int> GetUinquePtr()
{
auto [ignore, unique_ptr] = CreatePair();
return std::move(unique_ptr); // <- This works
}
Run Code Online (Sandbox Code Playgroud)
如果我使用 …
我正在尝试将 vim 与 ctags 和/或 cscope 一起使用,它工作得很好,但我遇到了一些问题,其中 ctags 跳转到错误的符号。例如,在下面的代码中,如果我将光标放在 main() 中的符号“a”上并按Ctrl+]转到定义,我将被定向到“虚拟结构”中的“char a”,但我想定向到我的 main 中的“int a”。ctags 或 cscope 可以处理这个问题吗?或者符号是否需要唯一的名称?
struct dummy
{
char a;
};
int main ()
{
int a = 1;
a = a + 2;
return a;
}
Run Code Online (Sandbox Code Playgroud)