[lldb-dev] RFC: Break/Watchpoint refactor

Zachary Turner via lldb-dev lldb-dev at lists.llvm.org
Tue Sep 27 15:43:19 PDT 2016


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:

class noncopyable {
public:
   noncopyable(const noncopyable &) = delete;
   noncopyable &operator=(const noncopyable &other) = delete;
};

class Foo : private noncopyable {
};



On Tue, Sep 27, 2016 at 3:29 PM Sean Callanan <scallanan at apple.com> wrote:

> The issue I have with the DISALLOW_ macro is that when you're looking to
> see what sort of constructors etc. are possible, you now have to look
> through a macro.  Personally, I like to see what constructors are available
> on an object in one list, and not have to guess about whether e.g. a move
> constructor is present or disallowed.
>
> Sean
>
> On Sep 27, 2016, at 3:24 PM, Jim Ingham <jingham at apple.com> wrote:
>
> Why?  The macro states the intent explicitly, rather than having to deduce
> it from details scattered through the class definition.
>
> Jim
>
> On Sep 27, 2016, at 3:13 PM, Sean Callanan via lldb-dev <
> lldb-dev at lists.llvm.org> wrote:
>
> Doing it everywhere would be a public service IMO.  I don't like macros
> either.
>
> Sean
>
> On Sep 27, 2016, at 3:07 PM, Zachary Turner via lldb-dev <
> lldb-dev at lists.llvm.org> wrote:
>
> FWIW LLVM removed all it's disallow copy / assign macros in favor of
> explicitly writing it.  I agree it's easier to just change the macro, but I
> would just do what LLVM does as long as you don't mind the extra work.
>
> On Tue, Sep 27, 2016 at 3:01 PM Daniel Austin Noland via lldb-dev <
> lldb-dev at lists.llvm.org> wrote:
>
>
>
> On 09/27/2016 03:37 PM, Enrico Granata wrote:
>
>
> On Sep 27, 2016, at 1:09 PM, Daniel Austin Noland via lldb-dev <
> lldb-dev at lists.llvm.org> wrote:
>
> * Prefer explicitly deleted copy ctor / assignments over multiline macro
> DISALLOW_COPY_AND_ASSIGN
>
>
> Why not just move DISALLOW_COPY_AND_ASSIGN over to using =delete ? That
> seems like a trivial change..
>
> That was my first thought as well.  Still, I personally try to avoid
> macros.  On the other hand that one is simple enough that it may be
> justified.
>
>
> Thanks,
> *- Enrico*
> 📩 egranata@.com ☎️ 27683
>
>
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>
>
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20160927/8cfd0c23/attachment.html>


More information about the lldb-dev mailing list