[C++] Use C++17 inline variables for enum_value #8489
+34
−24
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.
Trait structs have declarations of
enum_value
, which are static variables, but these structs don't have the instance definition of the variables. That causes link errors if a user takes the address of such variables, explicitly or implicitly. (ref: https://wandbox.org/permlink/oIB71xEbLzU5QIH6 )We can easily solve it by converting them to inline variables in C++17.
(ref: https://wandbox.org/permlink/GqrQKdIDETQiS1v4 )
WDYT?