[PATCH] D43704: Utility functions for checked arithmetic

Vedant Kumar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 26 13:44:33 PST 2018

vsk added inline comments.

Comment at: include/llvm/Support/CheckedArithmetic.h:33
+    T LHS, T RHS,
+    std::function<llvm::APInt(llvm::APInt *, const llvm::APInt &, bool &)> Op,
+    T *Res = nullptr) {
george.karpenkov wrote:
> vsk wrote:
> > I'd rather just have the type of the function be some free template parameter, then, so it's clear the object isn't copied.
> Could you elaborate?
I'm suggesting adding 'typename F' to the template parameter list and using F as the type of Op. It's shorter, and since there's no std::function, it signals to the reader that there are no unnecessary copies happening. Taken together this makes the code easier to read.


More information about the llvm-commits mailing list