You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I don't think it's particularly good practice for features to be hidden away in source code (i.e. you need to compile from source in order to have access to the Solvers that depend on third-party libraries). But it is also undesirable to make the third-party libraries into mandatory dependencies. I can think of two options that would get around this:
(1) Put each third-party extension for Solver into its own library, and manage them independently in the package managers. The only drawback here would be setting up the package managers.
(2) Use dynamic library loading, and a factory for producing Solvers. If the library that's needed by the requested Solver type isn't available on the computer, then the factory can return a nullptr and an error message. The drawback here would be implementing the dynamic loading (and I have no idea how difficult it would be, because I've never done it before).
I would be much more inclined towards option (1) than option (2), because I think it would be the most straightforward approach.
The text was updated successfully, but these errors were encountered:
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.
I don't think it's particularly good practice for features to be hidden away in source code (i.e. you need to compile from source in order to have access to the Solvers that depend on third-party libraries). But it is also undesirable to make the third-party libraries into mandatory dependencies. I can think of two options that would get around this:
(1) Put each third-party extension for Solver into its own library, and manage them independently in the package managers. The only drawback here would be setting up the package managers.
(2) Use dynamic library loading, and a factory for producing Solvers. If the library that's needed by the requested Solver type isn't available on the computer, then the factory can return a nullptr and an error message. The drawback here would be implementing the dynamic loading (and I have no idea how difficult it would be, because I've never done it before).
I would be much more inclined towards option (1) than option (2), because I think it would be the most straightforward approach.
The text was updated successfully, but these errors were encountered: