User Details
- User Since
- May 31 2014, 4:52 PM (486 w, 1 d)
Jan 14 2018
Dec 13 2017
Dec 12 2017
Thanks @lichray
Fixed incorrect test case.
Nov 24 2017
Turn fail test into SFINAE based pass test, mark XFAIL for clang.
Nov 22 2017
Back to decltype-based SFINAE.
Nov 21 2017
Full context diff.
Nov 20 2017
Addressed review comments. Added tests for SFINAE, noexcept, deduction guide.
Nov 6 2017
Oct 21 2017
Fix synopsis
Oct 12 2017
Oct 11 2017
Jun 1 2017
Apr 12 2017
LGTM
Apr 4 2017
I don't see any potential layout change, other than the case in which both T1 and T2 are empty (which I understand doesn't happen within libc++). As far as I know, the rest of the cases should result in the same layout regardless of whether EBO actually applies or not.
Sep 15 2016
I like this!
Jun 13 2016
Dec 15 2015
Addressed review comments. Use UNSUPPORTED in pairs.by.type.pass.
Dec 10 2015
Addressed review comments
Dec 9 2015
After that these changes LGTM. @K-ballo I'm happy to make the changes as I commit this if your OK with that?
Nov 19 2015
Sep 7 2015
Jul 7 2015
Jun 23 2015
Waiting for VS2015RTM
Waiting for VS2015RTM
Waiting for VS2015RTM
Waiting for VS2015RTM
Jun 12 2015
Jun 8 2015
Addressed review comments:
Jun 4 2015
Jun 2 2015
May 1 2015
Feb 12 2015
Feb 11 2015
Feb 9 2015
After we found some corner cases where my simpler approach does the wrong thing, I think Eric's patch is the way to go.
Feb 6 2015
The current functionality is correct as LWG2420 has not yet been accepted (note I'm the submitter). I'm sitting on a patch to implement the currently intended resolution (apply change to INVOKE, not just function) in a considerably simpler way, waiting for that direction to be confirmed.
Jan 28 2015
Jan 24 2015
Jan 23 2015
Address review comments.
Addressed review comments. Added test for the newly introduced diagnostic.
Jan 21 2015
Any suggestions on what to do with the failing testcase (CodeGenCXX/no-opt-volatile-memcpy.cpp)? This test checks that the issued @llvm.memcpy has isvolatile=true, but after this patch memcpy is no longer issued as those operations are no longer considered trivial. This could suggest that memcpy with isvolatile=true should still be used in those cases (albeit the docs say "it is unwise to depend on it"), or that there is dead code out there looking for volatile members in trivial operations.
Jan 20 2015
Addressed review comments. Keep in mind that only pow is implemented completely, once we get that one right I'll update the others to follow.
Jan 19 2015
Jan 14 2015
Updated test to work under C++03 mode
Oct 31 2014
This patch reverts the incorporation of __lazy_enable_if, as this is a more general solution. It implements __numeric_type in a SFINAE-friendly fashion, which will flag ambiguously convertible UDTs (as well as other soft errors) as non-numeric types.
Oct 23 2014
Oct 22 2014
Looks good to me. Some notes attached.
Oct 14 2014
Landed in rL218461
Oct 11 2014
Oct 9 2014
Sep 22 2014
Addressed review comments
Sep 21 2014
Aug 30 2014
Use _LIBCPP_ALWAYS_INLINE as it seems a better choice.
Aug 29 2014
Jul 30 2014
Jul 12 2014
Have you considered a non-recursive implementation of __tuple_constructible_imp? For instance, checking whether foo(declval<Up>()...) is well-formed given void foo(Tp...).
Jul 10 2014
Jun 26 2014
The existing implementation is the correct one for C++11, where is_destructible<T> is defined as:
Jun 25 2014
Jun 24 2014
Changes in this iteration:
Jun 19 2014
Changes in this iteration:
Jun 16 2014
Changes in this iteration:
I would like to add a test case that triggers a table rehash but I'm not sure how to do that, suggestions?
Not sure, actually. It looks like the growth function is the usual sort of thing, so probably just inserting a second element should cause a rehash - no?
Changes in this iteration:
In the other code review you mention StringMap has an insert that
returns bool? Yet you're not modifying that version here? What
arguments does it take that make it distinct from the two functions
you're adding?The existing insert is defined as bool insert(MapEntryTy *KeyValue), it takes a pointer to an already created MapEntryTy and acquires ownership of it. AFAIK, this is the only piece of functionality that would not be covered by a standard associative sequence interface.
Do any of the callers (at a glance) do anything fancy with this? Do they get a pre-allocated MapEntryTy object from somewhere far flung (from another map, from this map under another key, etc) - or do they just allocate it and pass it in immediately?
If it doesn't seem to add any value, it'd be nice to remove it (eventually - that task doesn't have to be yours to bear, but if it looks like that's the right path then a FIXME comment suggesting that direction could be useful).
Jun 15 2014
I think that instead of introducing a new function I should just be using mangleSourceName. A template instantiation name is a source name too (considering anonymous type names are treated as source names), it's just that their terminating '@' is currently being added at the end of the template argument list. If the argument list no longer appends the '@', then they would be treated as any other source name.
Jun 14 2014
Commited in r210416.
Jun 12 2014
Jun 6 2014
Renamed BackReferenceKey to TemplateMangling