[PATCH] D48349: [ADT] Add llvm::unique_function which is like std::function but supporting move-only closures.

Tim Shen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 2 13:48:44 PDT 2018


timshen added inline comments.


================
Comment at: llvm/include/llvm/ADT/FunctionExtras.h:161
+public:
+  unique_function() = default;
+  unique_function(std::nullptr_t /*null_callable*/) {}
----------------
The default ctor doesn't initialize CallbackAndInlineFlag to a valid empty state, does it? We probably want to zero-initialize it.

`std::function`'s default ctor is not trivial either.


================
Comment at: llvm/include/llvm/ADT/FunctionExtras.h:181
+  unique_function(unique_function &&RHS) noexcept {
+    // Copy the callback and inline flag.
+    CallbackAndInlineFlag = RHS.CallbackAndInlineFlag;
----------------
`if (!(bool)RHS) { ... }`


Repository:
  rL LLVM

https://reviews.llvm.org/D48349





More information about the llvm-commits mailing list