# Extra Clang Tools 21.1.8 documentation

## clang-tidy - modernize-use-using

# modernize-use-using

The check converts the usage of `typedef` with `using` keyword.

Before:

    typedef int variable;

    class Class{};
    typedef void (Class::* MyPtrType)() const;

    typedef struct { int a; } R_t, *R_p;

After:

    using variable = int;

    class Class{};
    using MyPtrType = void (Class::*)() const;

    using R_t = struct { int a; };
    using R_p = R_t*;

The checker ignores typedef within extern “C” { … } blocks.

    extern "C" {
      typedef int InExternC; // Left intact.
    }

This check requires using C++11 or higher to run.

## Options

IgnoreMacros

  If set to true, the check will not give warnings inside macros. Default is true.

IgnoreExternC

  If set to true, the check will not give warning inside extern “C”`scope. Default is `false