PR - removing reliance on RTTI - #73
Open
lpastrana-phaseview wants to merge 1 commit into
Open
Conversation
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.
Hello,
I'm working on a project where RTTI is not available and hit a stopper in ImNodeFlow in that regard.
In environments where RTTI is disabled (e.g. -fno-rtti / /GR-), typeid() is unavailable, making ConnectionFilter and getDataType() unusable.
This patch replaces the typeid-based type comparison with template-based equivalents using <type_traits>, which work without RTTI:
SameType() now uses std::is_same_v on the deduced types of connected pins
Numbers() now uses std::is_arithmetic_v on the output pin's value type
None() simplified to generic lambdas — no type info needed
getDataType() overrides commented out as the filters above no longer depend on them and they have no no-RTTI equivalent;
No behavioral change in RTTI-enabled builds for the None and Numbers filters.
SameType now performs a stricter compile-time check rather than a runtime type_info comparison.
Regards,
Lorenzo
PS: I've simply commented out getDataType() so far, let me know if you want it removed.