-
Notifications
You must be signed in to change notification settings - Fork 417
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consider eliminating FCL's dependence on boost #100
Comments
I'd be in favor of that. I just started the transition to C++11 in OMPL (https://github.com/ompl/ompl/tree/c++11). After grep-ing through FCL's code, it looks fairly straightforward. One thing that took me a while to figure out was that C++03 and C++11 code are not ABI compatible (usually things just work, though). The FCL library I had installed was compiled linked against Boost and both were built on C++03 mode. After compiling OMPL in C++11 code I got some odd crashes, possibly related to some constexpr's in Boost. So eliminating Boost as a dependency and forcing C++11 could potentially make it easier to adopt FCL. |
Requiring c++11 is a good way to remove many uses of boost, which I have been spearheading for urdfdom and some other repositories. Here's a list of boost header files included in the FCL master branch:
One that jumps out at me is boost filesystem, which isn't available in c++11, though it may be included in some later standards. |
boost filesystem is only used in the unit tests. The boost unit testing framework would also be a problem. Perhaps limiting boost to unit tests is acceptable (since end users wouldn't have to install boost to use fcl)? |
It seems |
I am also fully in favor of dropping the boost dependency. I think FCL's
|
@sherm1 we could make a checklist based on that list of header files that I made and then check them off as they are removed |
Great idea, Steve! Then we could do small PRs that knock them out one at a time and check them off until the last one is gone. |
Yeah, there is no going back. You have to commit to C++11 and then everyone who links with you does also. But ... this is now a 5 year old standard so it doesn't seem too soon to switch! |
I made issue #102 with Steve's boost checklist in it. |
For discussion -- boost is a very heavyweight dependency and could be an impediment to FCL adoption. It can also cause problems when FCL is integrated into a larger program that already has a boost dependency, possibly involving a different version of boost (Matlab comes with a version linked in, which caused Drake to have to drop boost).
I'm wondering if the need for boost could be eliminated in favor of C++11 use instead? Are there boost features in use that C++11 can't provide?
The text was updated successfully, but these errors were encountered: