Authoritatively forward declare core types #312
Merged
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.
From now on, anyone can just include
"au/fwd.hh"
, and getauthoritatively correct forward declarations. These will be implicitly
tested automatically by adding an
#include
of this new file at the topof every file that has a definition for which we now provide a forward
declaration: if we get a forward declaration wrong, we'll get a compiler
warning.
We also include
fwd.hh
in a few places where it lets us get rid ofsome manual forward declarations.
The rep-named aliases move upstream into
fwd.hh
, because they'll bedirectly useful for forward declaration use cases, and because you can't
"forward declare" an alias: you just have to move the definition
upstream.
Helps #232. To resolve it completely, we will need to provide a forward
declaration file for each individual unit file.