llvm::function_ref is preferable to std::function.  It's smaller and faster while still allowing lambdas, function pointers, and function objects<br><div class="gmail_quote"><div dir="ltr">On Tue, Sep 27, 2016 at 4:35 PM Greg Clayton <<a href="mailto:gclayton@apple.com">gclayton@apple.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br class="gmail_msg">
> On Sep 27, 2016, at 3:43 PM, Zachary Turner via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org" class="gmail_msg" target="_blank">lldb-dev@lists.llvm.org</a>> wrote:<br class="gmail_msg">
><br class="gmail_msg">
> One solution I've seen (I think boost does this as well) is to make a utility class called noncopyable that you can privately inherit from:<br class="gmail_msg">
><br class="gmail_msg">
> class noncopyable {<br class="gmail_msg">
> public:<br class="gmail_msg">
>    noncopyable(const noncopyable &) = delete;<br class="gmail_msg">
>    noncopyable &operator=(const noncopyable &other) = delete;<br class="gmail_msg">
> };<br class="gmail_msg">
><br class="gmail_msg">
> class Foo : private noncopyable {<br class="gmail_msg">
> };<br class="gmail_msg">
><br class="gmail_msg">
That is fine for internal classes.<br class="gmail_msg">
<br class="gmail_msg">
</blockquote></div>