-
-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Split point_types.hpp part into field_traits.(h|hpp)
#6375
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
base: master
Are you sure you want to change the base?
Split point_types.hpp part into field_traits.(h|hpp)
#6375
Conversation
* Move `(H|h)as_` traits from `point_types.hpp` into `field_traits.(h|hpp)` * Add `field_traits.h` include where field traits are used * Change a MSVC compiler warning reset via `#pragma warning((push|pop))` * Add `field_traits.h` include in `point_types.h` for backward compatibility Signed-off-by: Ramir Sultanov <sumir0@proton.me>
point_types.hpp part into field_traits.(h|hpp)point_types.hpp part into field_traits.(h|hpp)
|
Also may fix #5040 |
|
Based on #6367 |
Signed-off-by: Ramir Sultanov <sumir0@proton.me>
Signed-off-by: Ramir Sultanov <sumir0@proton.me>
|
I will try to build manually with Edit: Compilation finished successfully. |
point_types.hpp part into field_traits.(h|hpp)point_types.hpp part into field_traits.(h|hpp)
* Remove unnecessary `pcl/point_types.h` includes in some files * Add missing `pcl/point_types.h` includes in some files Signed-off-by: Ramir Sultanov <sumir0@proton.me>
* Change license description in `pcl/field_traits.(h|hpp)` Signed-off-by: Ramir Sultanov <sumir0@proton.me>
* Add missing `pcl/point_types.h` includes in `examples` Signed-off-by: Ramir Sultanov <sumir0@proton.me>
point_types.hpp part into field_traits.(h|hpp)point_types.hpp part into field_traits.(h|hpp)
* Add missing `pcl/point_types.h` includes in some files Signed-off-by: Ramir Sultanov <sumir0@proton.me>
Add missing `cstring` include in `common/include/pcl/common/impl/copy_point.hpp` Signed-off-by: Ramir Sultanov <sumir0@proton.me>
|
For a moment I thought I was going under some water here... Phew, it was close! Excuse me for informality. As the pipelines are passing it seems that we are good to go (or maybe not, because there are still some files for which it would be nice to add missing includes, but they can be added in other PRs, possibly) |
point_types.hpp part into field_traits.(h|hpp)point_types.hpp part into field_traits.(h|hpp)
|
I tried it on windows yesterday and noticed a lot of: no suitable definition provided for explicit template instantiation request. I haven't quite figured out why its not provided, but we should look into it before merging. |
|
Oh, nice catch! @larshg As far as I understand these warnings were disabled by
But Therefore, in the translation units where |
|
Ahh, yes. And it doesn't seem to be worth looking into fixing that warning, so we just need to include pcl_macros.h accordingly? |
|
Hmm. Disabling warnings in a header file (without returning to the state before the disabling) will affect warnings in user code which includes (directly or transitively) that header. Would it not be better to disable project scope warnings using a build system (in our case CMake)? |
I suppose we could try disabling that warning here: https://github.com/PointCloudLibrary/pcl/blob/master/CMakeLists.txt#L190 |
Looks like a good place, if you ask me! Though, there is still a room for improvement. For example,
I assume |
|
You are right, there is definitely CMake code within PCL that could be modernized or improved. @larshg has already improved a lot of CMake code, and is still working on that topic, I believe. However, that is often a bit risky because after a change it can be difficult to verify that everything still works as expected (on all OS, compilers, user projects, etc). Anyway, in this pull request, I would prefer to minimize changes to the CMake code to what is strictly necessary, and perhaps discuss switching to I also did a test: I changed pcl_macros.h so warning 4661 is not disabled, and when building a project that uses PCL, I did not see any warning of that kind coming from PCL headers. So that might not be a problem after all. If we find out later that it is a problem, we might look here and consider replacing So, my suggestions to get this pull request ready for merging soon:
Sounds good? |
(H|h)as_traits frompoint_types.hppintofield_traits.(h|hpp)field_traits.hinclude where field traits are used#pragma warning((push|pop))field_traits.hinclude inpoint_types.hfor backward compatibilitypcl/point_types.hincludes in some filespcl/point_types.hincludes in some filescstringinclude inpcl/common/impl/copy_point.hpp