-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implementation headers should be in src/ #248
Comments
Theoretically, almost the entire library could be moved because the only constexpr part is integers which is trivial in comparison to the floating point part. I'm averse to that because then we lose all component testing. Alex just filed a few issues against the parser over Christmas, and I know for his applications he is using the parser directly to get around limitations in the API mandated by the C++ standard. Is there a reason for modules with this library? It seems like if you're using C++20 you could just use |
I think you can still test as you're doing right now. You can include headers in src/, as you're already doing in some tests atm. So it's just a change in location - no loss in terms of tests. I know it sounds weird modularizing charconv, but
|
As long as @Flamefire can still access the parser in the current detail folder give it a whirl and see how it goes. If need be I think you can easily chop the remaining dependencies out of this library. |
I don't think you can put that specific header into For context: I need to parse an integer represented in exponential format for which @mborland provided this example using the However I discovered some restrictions:
So I implemented a function that converts this notation into a regular integer format and passes that string to It is inspired by the parser code but a bit simpler. However me using this in another Boost library provides some good test coverage, see my previous PRs. So I might switch back if this sounds beneficial. But I feel like my use case is too special for the intended use of that interface which seems to be mainly used for the What do you think? |
According to what I've seen, the following headers can be placed in
It's up to you to decide whether this is worth the effort or not. |
Of those only So I'm fine with the moving as I have/had to write an own significant-exponent parser that can handle that difference which wasn't too hard with this code as inspiration. I still suggest to review the code carefully and extend the tests to define and verify the expected behavior, see #244 & #241 |
Some headers in
detail
seem to only be used in the library implementation (i.e. the.cpp
files). I think these should be undersrc/
to avoid being distributed when installed, even if they are used in the tests. I've found this out while trying to add C++20 module support to the library, where the mental model for headers in the interface unit and the implementation units is different.Would you be open to a PR applying the changes I suggest?
The text was updated successfully, but these errors were encountered: