In FastArduino library, several header files explicitly #include "streams.h" just to define specific operator<<() on types defined in these files.
This has a spurious impact on programs that:
include one of these header files, directly or indirectly
include empty_streams.h
Since FastArduino allows end developers to use streams.h or empty_streams.h in their programs, their choice shall not prevent using some FastArduino features.
Thus any non-mandatory #include "streams.h" should be removed, and specific operator<<() shall be defined elsewhere or differently to fit either streams kind.
Concerned files are:
future.h
i2c_handler_common.h
i2c_status.h
i2c.h
vl53l0x_types.h
There are other headers including streams.h but they definitely need actual streams, so no change is needed for them.
In FastArduino library, several header files explicitly
#include "streams.h"
just to define specificoperator<<()
on types defined in these files. This has a spurious impact on programs that:Since FastArduino allows end developers to use streams.h or empty_streams.h in their programs, their choice shall not prevent using some FastArduino features.
Thus any non-mandatory
#include "streams.h"
should be removed, and specificoperator<<()
shall be defined elsewhere or differently to fit either streams kind.Concerned files are:
There are other headers including
streams.h
but they definitely need actual streams, so no change is needed for them.