为什么将`std :: scoped_lock`变量标记为const?

时间:2018-09-09 07:04:19

标签: c++ visual-studio

我在使用多个std::scoped_lock变量的代码库上尝试了最新Visual Studio 2017版本的“代码分析”功能:

void f()
{
    std::scoped_lock<std::mutex> my_lock(my_mutex);
    // ...
}

使用“ Microsoft All Rules”配置,Visual Studio建议以下内容:

warning C26496: The variable 'my_lock' is assigned only once, mark it as const (con.4).

我通常一直都在使用局部const变量,但是我从来没有觉得对于不允许修改的类型是没有必要的。 std::scoped_lock只能被构造和销毁。我想Visual Studio在这里只是盲目地应用了一个非常通用的准则,但是我会错过吗? std::scoped_lock<std::mutex> const会允许编译器做一些不同的事情,还是在编译期间检测到错误?

0 个答案:

没有答案