# Extra Clang Tools 18.1.8 documentation

## clang-tidy - bugprone-unused-local-non-trivial-variable

# 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:

- trivial and trivially copyable

- references and pointers

- exception variables in catch clauses

- static or thread local

- structured bindings

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.