Use struct
instead of class
for core structures
#880
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.
This PR does three things:
class
tostruct
for the core data structures and adjusts the bindings generator to handle this._NO_DISCARD_
to core data structures to match the engine._native_ptr
from core data structures to match the engine (it's just a void pointer cast).Why change
class
tostruct
? Here are several reasons:struct
's default visibility ispublic
, which all members are now that_native_ptr
has been removed.class
andstruct
are actually different things on MSVC. With godot-cpp's types defined withclass
, any forward declarations copied from an engine module likestruct Vector2;
will not work correctly on MSVC. This is actually something that I discovered after starting work on this PR, and it makes the case for it stronger.