Avoid transitive includes#14483
Merged
Merged
Conversation
Fix missing <fstream> include in backend-hid.h and <thread> include in network-adapter-watcher.cpp to ensure proper compilation across different build environments and avoid implicit dependency on transitive includes.
OhadMeir
approved these changes
Dec 2, 2025
OhadMeir
left a comment
Contributor
There was a problem hiding this comment.
Thanks @brianferri for your contribution.
I have opened an internal ticket to handle other cases of such missing includes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I've been trying to wrap the SDK for Zig and I found that, while compiling for Linux x86_64 the compilation would fail due to undefined templates/incompatible binary operators being used in
src/linux/backend-hid.handthird-party/rsutils/src/network-adapter-watcher.cpp:librealsense/src/linux/backend-hid.husesstd::fstreamandstd::ifstreamwithout including<fstream>librealsense/third-party/rsutils/src/network-adapter-watcher.cppusesstd::threadwithout including<thread>Both files rely on transitive includes that may not be available across different build environments, causing compilation failures when the header dependency chain changes.
I haven't dug enough around to see if there are other places where this happens, I hope this PR brings the underlying issue to the attention of the core developers and encourages a more thorough audit of the codebase for similar missing includes.