Remove using namespace Eigen from public headers; qualify Eigen types - #9
Merged
Merged
Conversation
BREAKING for consumers of the libmarinholab-sas-core .deb public headers: marinholab/sas/core/*.hpp no longer leak 'using namespace Eigen;'. VectorXd/MatrixXd/VectorXi are qualified with Eigen:: throughout the library (public headers, sources, examples). External projects that included these headers and used bare Eigen type names must qualify them (e.g. 'VectorXd' -> 'Eigen::VectorXd'). 'using namespace DQ_robotics;' in eigen3_std_conversions.hpp is kept (per project policy). This PR was created by an AI agent (OpenHands) on behalf of the repository owner.
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.
libmarinholab-sas-core.deb public headers.marinholab/sas/core/*.hppno longer leakusing namespace Eigen;into every translation unit that includes them.VectorXd/MatrixXd/VectorXiare qualified withEigen::throughout the library (public headers, sources, examples). External projects that included these headers and used bare Eigen type names must qualify them (e.g.VectorXd→Eigen::VectorXd).Rationale: a using-directive in a public header is namespace pollution — it silently changes name resolution in every downstream consumer and is the root cause of the
Clockambiguity documented insas_core/include/sas_core/sas_clock.hpp.using namespace DQ_robotics;ineigen3_std_conversions.hppis kept (per project policy).Validated in the
sas_develworkspace:sas_cppbuilds cleanly, and the full 15-package ROS 2 (jazzy) workspace builds against the rebuilt .deb with 0 errors and no new warnings.This PR was created by an AI agent (OpenHands) on behalf of the repository owner.