readability-named-parameter

Find functions with unnamed arguments.

The check implements the following rule originating in the Google C++ Style Guide:

https://google.github.io/styleguide/cppguide.html#Function_Declarations_and_Definitions

All parameters should have the same name in both the function declaration and definition. If a parameter is not utilized, its name can be commented out in a function definition.

int doingSomething(int a, int b, int c);

int doingSomething(int a, int b, int /*c*/) {
    // Ok: the third param is not used
    return a + b;
}

Corresponding cpplint.py check name: readability/function.

The check ignores parameters whose types are standard tag types (e.g. std::in_place_t, std::allocator_arg_t, std::nothrow_t, iterator tags, lock tags, etc.). The set of ignored types can be customized with the IgnoredTypes option.

Options

InsertPlainNamesInForwardDecls

When true, the check will insert parameter names without comments for forward declarations only. Otherwise, the check will insert parameter names as comments (e.g., /*param*/). Default is false.

IgnoredTypes

A semicolon-separated list of fully-qualified type names whose parameters do not need to be named (for example, tag dispatch types, iterator tags, etc.). The following standard tag types are ignored by default:

  • std::adopt_lock_t

  • std::allocator_arg_t

  • std::bidirectional_iterator_tag

  • std::contiguous_iterator_tag

  • std::default_sentinel_t

  • std::defer_lock_t

  • std::destroying_delete_t

  • std::forward_iterator_tag

  • std::from_range_t

  • std::in_place_index_t

  • std::in_place_t

  • std::in_place_type_t

  • std::input_iterator_tag

  • std::nothrow_t

  • std::nostopstate_t

  • std::nullopt_t

  • std::output_iterator_tag

  • std::piecewise_construct_t

  • std::random_access_iterator_tag

  • std::sorted_equivalent_t

  • std::sorted_unique_t

  • std::try_to_lock_t

  • std::unexpect_t

  • std::unreachable_sentinel_t