[libcxx-commits] [PATCH] D60393: Force is_invocable template parameters to be complete types

Eric Fiselier via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Tue Apr 9 21:39:07 PDT 2019


EricWF requested changes to this revision.
EricWF added a comment.
This revision now requires changes to proceed.

This patch isn't correct. The `is_flexable_invocable` trait is an ODR violation. And I don't think the bug this is solution to PR41360.



================
Comment at: include/type_traits:4437
+template<class _Tp>
+struct __complete_type<_Tp>
+{
----------------
This is an ODR violation in waiting. 


================
Comment at: include/utility:1596
     is_move_constructible<_Hash>::value &&
-    __invokable_r<size_t, _Hash, _Key const&>::value
+    __flexible_invokable<_Hash, _Key const&>::value
 >;
----------------
The types have to be complete here. It's an ODR violation otherwise.


Repository:
  rCXX libc++

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60393/new/

https://reviews.llvm.org/D60393





More information about the libcxx-commits mailing list