PointCloudLibrary / PointCloudLibrary/pcl

Ensure no `*.hpp` files are needed to be included by the user, only the `*.h` should be required

Open
#3,245 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

good first issue kind: todo
Dominant language
C++
Stars
11.1k
Forks
4.7k
Avg merge
4d 10h
Merged PRs (30d)
6

Description

Your Environment

  • Operating System and version: Win10
  • Compiler:
  • PCL Version: 1.9.1

Context

In general, we can find PCL .hpp are included at end of header file

#ifdef PCL_NO_PRECOMPILE
#include <pcl/....hpp>
#endif

But why some .hpp are not.
For example:
pcl/surface/impl/grid_projection.hpp: it is included in .cpp
pcl/outofcore/impl/octree_base.hpp: it need to be included by user self

Expected Behavior

Current Behavior

Code to Reproduce

Possible Solution

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing pcl/surface/impl/grid_projection.hpp and pcl/outofcore/impl/octree_base.hpp with their corresponding public headers and inspect how the PCL_NO_PRECOMPILE include pattern is applied elsewhere. Done means users can rely on the relevant *.h headers without manually including implementation *.hpp files, with the affected include behavior verified across these examples.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
developer-experience
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.