Fix: change auto-generated model fields prefix to suffix to avoid macros collisions#2540
Open
afanofrafa wants to merge 1 commit into
Open
Fix: change auto-generated model fields prefix to suffix to avoid macros collisions#2540afanofrafa wants to merge 1 commit into
afanofrafa wants to merge 1 commit into
Conversation
…ros collisions from std library
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description of the problem I faced during the developing
Currently,
drogon_ctlgenerates model field constants in theColsstruct with a leading underscore (e.g.,_id,_name). This causes compilation issues on Windows (especially with MSVC) due to collisions with system macros and standard library reserved identifiers.This PR moves the underscore to the end of the variable name (e.g.,
id_,name_) in the generated templates to follow standard C++ naming conventions and avoid these collisions.Changes made
drogon_ctl/templates/model_h.cspanddrogon_ctl/templates/model_cc.csptemplates.Colsstruct from_fieldNametofieldName_.Note: This is a breaking change for existing user code that directly uses
ModelName::Cols::_fieldNamein their ORM queries, but it is necessary for cross-platform compatibility.