This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Add DISABLE_COPY_AND_ASSIGN


On 2017-07-18 05:38 PM, Pedro Alves wrote:
> 
> On 07/18/2017 04:13 PM, Yao Qi wrote:
>> Pedro Alves <palves@redhat.com> writes:
>>
>>> Yes, please.  I've been meaning to add something like this for a while.
>>>
>>> IMO, this could go in include/ansidecl.h, with a fallback version for
>>> #if __cplusplus < C++11 that declares the methods without =delete (you
>>> get a link error instead).
>>>
>>
>> I thought about adding this into include/, but can't find the right
>> file.  I'll move the macro to include/ansidecl.h.
> 
> Thanks.  Note that that file is maintained by gcc.
> 
>>
>>>>  /* Pull in gdb::unique_xmalloc_ptr.  */
>>>>  #include "common/gdb_unique_ptr.h"
>>>>  
>>>> +#define DISABLE_COPY_AND_ASSIGN(TYPE)		\
>>>> +  TYPE (const TYPE&) = delete;			\
>>>> +  void operator= (const TYPE &) = delete;
>>>> +
>>>
>>> Should this have an intro comment?
>>>
>>
>> I thought it is too simple to have a comment :)  How about this?
>>
>> /* A macro to disable the copy constructor and assignment operator.
>>    When building with C++ 11, explicitly delete these methods.
>>    Otherwise, place this macro in the private: declarations of a class.  */
> 
> How about this tweak:
> 
>  /* A macro to disable the copy constructor and assignment operator.
>     When building with C++11 and above, the methods are explicitly
>     deleted, causing a compile-time error if something tries to copy.
>     For C++03, this just declares the methods, causing a link-time
>     error if the methods end up called (assuming you don't
>     define them).  For C++03, for best results, place the macro
>     under the private: access specifier, so that most attempts at
>     copy are caught at compile-time.  */
> 
> Thanks,
> Pedro Alves
> 

Hi Yao,

Out of curiosity, did you make any progress on this?

Thanks,

Simon


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]