bugprone-unused-local-non-trivial-variable

Warns when a local non trivial variable is unused within a function. The following types of variables are excluded from this check:

This check can be configured to warn on all non-trivial variables by setting IncludeTypes to .*, and excluding specific types using ExcludeTypes.

In the this example, my_lock would generate a warning that it is unused.

std::mutex my_lock;
// my_lock local variable is never used

In the next example, future2 would generate a warning that it is unused.

std::future<MyObject> future1;
std::future<MyObject> future2;
// ...
MyObject foo = future1.get();
// future2 is not used.

Options

IncludeTypes

Semicolon-separated list of regular expressions matching types of variables to check. By default the following types are checked:

  • ::std::.*mutex

  • ::std::future

  • ::std::basic_string

  • ::std::basic_regex

  • ::std::basic_istringstream

  • ::std::basic_stringstream

  • ::std::bitset

  • ::std::filesystem::path

ExcludeTypes

A semicolon-separated list of regular expressions matching types that are excluded from the IncludeTypes matches. By default it is an empty list.