Open
Description
clang-include-cleaner
suggest to include header with forward declaration when headers with base/derived classes should be enough.
clang-tidy misc-include-cleaner
output:
clang-tidy -checks="-*,misc-include-cleaner" Forward.cpp
4 warnings generated.
Forward.cpp:3:39: warning: no header providing "detail::Forward" is directly included [misc-include-cleaner]
2 |
3 | void Test::do_something(const detail::Forward& /*forward*/)
| ^
I tried clang-include-cleaner
from main
(7d8b4eb).
Base class header file (Base.h
):
#pragma once
namespace detail
{
class Forward;
}
class Base
{
public:
virtual void do_something(const detail::Forward& forward);
};
Header file (Forward.h
):
#pragma once
#include "Base.h"
class Test : public Base
{
public:
void do_something(const detail::Forward& forward) override;
};
Source file (Forward.cpp
):
#include "Forward.h"
void Test::do_something(const detail::Forward& /*forward*/)
{
}