-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Misc constexpr #491
Misc constexpr #491
Conversation
@miscco Could we trouble you to add tests for these things now that we have tests in the repo? |
yes thats on my list for the coming days |
Lets write some tests... :: cries in tuple :: On a more serious note I dont think I can write the tests fo the |
Yeah, that's the thing with this change and why we aren't already shipping it. A few lines of product code but a lot of tests are necessary. (That's why we haven't jumped on / tried to merge this now that we have tests here on GH)
You can write something like this pseudocode:
|
@BillyONeal Thanks a lot for the code example. I will try it out, the other tests are hopefully finished. I went with all those tuple constructors on cppreference |
I went through all the changes and even found some bugs. Who would have thought that tests do actually help. |
And people wonder why I'm so adamant about "no product changes without corresponding tests" |
Do you have no faith? I am a random person from the internet, what could go wrong? |
None. |
It has nothing to do with you being a random person on the internet, only the "person" part. The only person I've seen with a brain compiler with a near 0% failure rate is Stephan ... and even then not close enough to 0 that I don't want tests :) |
b30d3e3
to
b44c4b8
Compare
I rebased on #589 |
Rebased again due to whatever conflict there was |
From #599 (comment): we'll need to rebase this atop #599, update the value of |
ae8900a
to
c1cbd20
Compare
So I rebased upon @Weheineman work and now I get some erros that I really do not understand:
Those variables were unused before. How does my change affect this code? The other errors seem valid as string_view::copy was incorrectly marked as |
fc68b5b
to
de741f2
Compare
Rebased on master. I still have no Idea why the tests a suddenly failing. Should we investigate or should we simply add a |
I believe the product code is done - just need to review the test and extend it for overlapping ranges. |
That isa simple and elegant solution to the mess I did with those char_traits. Thanks a lot 👍 |
Summary of test changes:
|
Stephan: This is good, just some final touches. Also Stephan: Add a zillion lines of test, fixes bad style, cleanes up everything. You are amazing. And terryfing But mostly amazing |
/azp run |
Azure Pipelines successfully started running 1 pipeline(s). |
One more change - I requested compiler support from MSVC (DevCom-1046483) and EDG (Microsoft-internal VSO-1129974), so I added a centralized macro that we'll be able to update in the future, with a |
Thanks for building one more stage of the C++20 rocket! 🚀 😸 |
Description
This addresses parts of #50 now that
is_constant_evaluated
has been implemented and we can proceed. I did not add the feature test macros fo functional and array as the larger parts are still open.Note that there was one prexisting bug with the constructor of
insert_iterator
that missed theexplicit
keywordAlso tuple is hell...
Fixes #203.
Checklist
Be sure you've read README.md and understand the scope of this repo.
If you're unsure about a box, leave it unchecked. A maintainer will help you.
_Ugly
as perhttps://eel.is/c++draft/lex.name#3.1 or there are no product code changes.
verified by an STL maintainer before automated testing is enabled on GitHub,
leave this unchecked for initial submission).
members, adding virtual functions, changing whether a type is an aggregate
or trivially copyable, etc.).
the C++ Working Draft (including any cited standards), other WG21 papers
(excluding reference implementations outside of proposed standard wording),
and LWG issues as reference material. If they were derived from a project
that's already listed in NOTICE.txt, that's fine, but please mention it.
If they were derived from any other project (including Boost and libc++,
which are not yet listed in NOTICE.txt), you must mention it here,
so we can determine whether the license is compatible and what else needs
to be done.