Chromium Code Reviews| Index: base/callback_internal.h |
| diff --git a/base/callback_internal.h b/base/callback_internal.h |
| index e4e538ff15c2d0dfe239bc5d8b17fe411c59926e..643ea324404615f401ad47482d1422ea2f980178 100644 |
| --- a/base/callback_internal.h |
| +++ b/base/callback_internal.h |
| @@ -11,6 +11,7 @@ |
| #include <stddef.h> |
| #include <memory> |
| #include <type_traits> |
| +#include <vector> |
|
dcheng
2016/02/01 21:26:03
Unfortunately, doing this means more opportunities
|
| #include "base/atomic_ref_count.h" |
| #include "base/base_export.h" |
| @@ -118,6 +119,14 @@ template <typename T> struct IsMoveOnlyType { |
| template <typename T, typename D> |
| struct IsMoveOnlyType<std::unique_ptr<T, D>> : std::true_type {}; |
| +// Specialization of std::vector, so that it's considered move-only if the |
| +// element type is move-only. |
| +template <typename T, typename Allocator> |
| +struct IsMoveOnlyType<std::vector<T, Allocator>> { |
| + static const bool value = |
| + IsMoveOnlyType<typename std::vector<T, Allocator>::value_type>::value; |
|
vmpstr
2016/02/01 21:36:16
FWIW, I think "typename std::vector<T, Allocator>:
dcheng
2016/02/01 22:16:54
The argument for using value_type is for consisten
|
| +}; |
| + |
| template <typename> |
| struct CallbackParamTraitsForMoveOnlyType; |