Make _grpc.h types C++20 compatible #1041
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.
As of C++20, it is malformed to have an unnamed class used in typedef with a
base class. In the generated reflection code for a service, we were using the
following construct to create a reflectable entry for each field in a
struct.
Now, instead of using an unnamed class, we generate a named class and refer
to that:
This commit is very similar in spirit to f1cb707. See that commit for
even more details about what's going on.
Also adds a test that compiles a service that has method names that
conflict with the names in
MethodTemplate
. The gRPC++ unit test CMakenow has a single library with the compiled generated code.
Fixes #1027