| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
Thanks for the suggestion and investing the time to provide code! I may have cycles to take a look at this but for now I'm putting it in bucket 4 in the current priorities (#1287) as I'm taking a pass to triage the outstanding PRs -- I think this is something desirable that we'll need to address somehow at some point. Thanks again. |
Sorry, something went wrong.
|
@DrizztDoUrden I would like to try this feature, would you mind sharing an example project with me? Thanks. |
Sorry, something went wrong.
|
Will this feature avoid having to do this? #594 (comment) |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
The purpose of this PR is to allow including pure headers into multiple translation units without ODR violations.
First and foremost it splits phase2_func_defs into phase2_inline_defs and phase3_regular_defs. Produced .h file gets all declarations (as before), alias definitions and anything template-related, while the rest go to .hpp.
A flag -tu-compatible-h2 is added that stops generated hpp files from including other hpps as it is not necessary to produce a buildable source, but the default behaviour is unchanged. When using the flag it is important to include the resulting .hpp at least somewhere as it is never included automatically.
With a simple-ish cmake functions it makes it possible to produce automatically both header with declarations and inline definitions and a cpp with non-inline definitions. As an example, in my hobby project cmake parses h2s, finds #cppinclude lines and adds them to a new .cpp as regular #include, than includes the generated .hpp.