From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 86620 invoked by alias); 9 Sep 2017 18:45:56 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 86607 invoked by uid 89); 9 Sep 2017 18:45:55 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.8 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.3.2 spammy=Pull, Hx-languages-length:1800 X-HELO: sessmg23.ericsson.net Received: from sessmg23.ericsson.net (HELO sessmg23.ericsson.net) (193.180.251.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 09 Sep 2017 18:45:54 +0000 Received: from ESESSHC006.ericsson.se (Unknown_Domain [153.88.183.36]) by sessmg23.ericsson.net (Symantec Mail Security) with SMTP id 78.98.22436.FD634B95; Sat, 9 Sep 2017 20:45:51 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.36) with Microsoft SMTP Server (TLS) id 14.3.352.0; Sat, 9 Sep 2017 20:45:50 +0200 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from [192.168.0.102] (80.216.43.226) by AMSPR07MB312.eurprd07.prod.outlook.com (2a01:111:e400:802f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.4; Sat, 9 Sep 2017 18:45:49 +0000 Subject: Re: [PATCH] Add DISABLE_COPY_AND_ASSIGN To: Pedro Alves , Yao Qi CC: References: <1500385686-19857-1-git-send-email-yao.qi@linaro.org> <179e2d35-d903-1d6d-256a-063a35d677d2@redhat.com> <86iniprd5l.fsf@gmail.com> <075e7089-199f-f251-c4a2-58099b5f06e9@redhat.com> From: Simon Marchi Message-ID: <19cd9fec-2b41-e827-0d51-b2a1b0680808@ericsson.com> Date: Sat, 09 Sep 2017 18:45:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <075e7089-199f-f251-c4a2-58099b5f06e9@redhat.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: VI1PR07CA0148.eurprd07.prod.outlook.com (2603:10a6:802:16::35) To AMSPR07MB312.eurprd07.prod.outlook.com (2a01:111:e400:802f::24) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 05adb0c6-300c-4ca3-b206-08d4f7b2fd95 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:AMSPR07MB312; X-Microsoft-Exchange-Diagnostics: 1;AMSPR07MB312;3:Ph2ZdfzWssWygSxGyIH1Rg6x9bMEAKzR/OWLNPb9qlOuX2wTvQEfgBjTP5lQPwyQTAtxH6mfwTX0kzs9WiGO3XY7vtO638QpNVtpDRDfrZfPyjm3jt8xyL/vZWKqB4GOr5Y5NQgShYHoSXK/CBpweEJlb/AfdbzGNMepcC4Iba6t6Hxbw83aot7Wa0tz70BfPQBQqwC1ZsOniNvjFnJwbduY1c2TTs53kKPU29QaQu5y3o0B93UTkW02sS511Sgy;25:YfsWi7u1GGXaeVrj9J2UE/fzAnNtC2p68WccasHxuIXNGoGZhAypIKm1WAUM4VtHOhGGFjaLZFFHl4npGkrYCcYwYaklbw97YVBdP3FW7y3U9tkmqc7HAfKTls0Nf64w7FFUpcws+swq6ca9v/Akcvze2LusF7B2LWEt1Wb2bzwSuSPvGHcZNjQo3moBd7F2ajhl4tqDSSb7xmtAzKq+Y9u678ZAIVGrJv6nMShvhyhIz+vU2dHjXgW3Ir+ii66/Gm+bNb/kOu/WQ3b/U+1JtFBDfnd4Ao9dB0vACB13FDO13aWT9R5m48s5UOD4fatKKsFU3iCjQzUX33Uj2IGJvg==;31:LIeh9p9BhXol7YZBHwTMJiv3qSaphaM3/vvWEidkcd5qYE2r9UYLs58cDu7909OLSo8XFy6zm3aq1lJLjByIvuxvEwE0XttvgUhrK3BQHeQjux8kTzB+KZtC8iMgpC/7TFnwLPFVw8XflTzCjxB7zFODLqt9KvcfmNkM0AOQfA/7ytwJhrWz3SVXMxTU0PeH9EFKLRqKYrd30sbW3vh7Lvd2tKpLM3SZ2ftaWE+rHkc= X-MS-TrafficTypeDiagnostic: AMSPR07MB312: X-Microsoft-Exchange-Diagnostics: 1;AMSPR07MB312;20:FOWZlZeH+4+qhnIyz8eZNv/GSLNVZEHQpl+08ILT6CVhZVQAqatg/xYLgYh0BuF4RBEnx0ZCr9QMh1aEkRPYwgVDQcBeTlWtpCNgOd4OshXbR4HUbOZPz84MQC80CqtT5rlHScsD/MBtPoea7UDR9GTl1owE3bUGwqXdcSI3YS0WkW1k7aMW9Xwf6Thg33FjtvW77CPp74HMv60lfF7r99t/MiXKKiq6DROaZEy3gnlWjEZiHpIymiW/P8c608fAC9x143ee2shtaEV/DHGCJzf1mv9uLdAVqG2mwiiQJV0vOo38NJVrugqSAxdcjOJ49096uiyfSZ3wkgIO/yDwYKLBinJVZdxDYe9gKeGftnCcWPuGf0hRgZqAfvdpFqJ65ofsuvpQgmIBZR31Nbpn30E/8Mcg34OTgjZYt4rJVdj8UqaQ+7ftT8BTRR/zJkWRbi+nhoN0KTFanCWxrealkVWDCSZv/wop+sdmlzr7+/G/pL8HOZO0Xfr8diBJM89W;4:+zhL4DF2TFJQvuQAI0SULJqnt844bFTorfQKIZugt5FPXbmZ0qdLSOv2mJx+f1cs5B8+iyJPtAJz8sotHeMa905u5RPvQ9s2NJc6RFmGJCY3igb5j5fc5euQQ7Rqxix+b9lhmndblHVuVvfBX1tgOdM2aMLJumaO+Vul0WVcBeD8iGI8WRLHl8+v7SshfvS2c4jw2tJMWJIZggskLFAtLbeyo6j6Gnmr6J++KGPDW3otKWYjk26k2zQYo9c7ynJT X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(3002001)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(6041248)(20161123558100)(20161123560025)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:AMSPR07MB312;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:AMSPR07MB312; X-Forefront-PRVS: 0425A67DEF X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(7370300001)(6009001)(6049001)(189002)(377454003)(199003)(377424004)(24454002)(5660300001)(189998001)(23676002)(230700001)(2906002)(65826007)(54356999)(7736002)(76176999)(50986999)(4326008)(25786009)(305945005)(53936002)(33646002)(53546010)(7350300001)(101416001)(2950100002)(6246003)(106356001)(68736007)(6666003)(47776003)(105586002)(81156014)(50466002)(81166006)(6486002)(83506001)(8676002)(65956001)(66066001)(65806001)(64126003)(478600001)(97736004)(6116002)(42186005)(3846002)(86362001)(93886005)(31696002)(4001350100001)(31686004)(229853002)(77096006)(36756003)(117156002);DIR:OUT;SFP:1101;SCL:1;SRVR:AMSPR07MB312;H:[192.168.0.102];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTVNQUjA3TUIzMTI7MjM6dHhzWExuOUFuRU5hMmdrcGloM2Fjb2pTNTJM?= =?utf-8?B?RlVwcUJ0YWRIL204UlVUazFIZm1HMlM4ek5WMzgyc3ZqU0lVTVM0ZGZ2WTRp?= =?utf-8?B?aWJtUnBKdzJCNkV6VVd3YUpMd1hraHpLQWUxSGRaZFhPRXRyZWluNjZlaDdD?= =?utf-8?B?cnJlNHBVd25XR0IvZTg2U2habmlsRU9RdUhBNllicGJ2MFovMjMyZ0ZyckpW?= =?utf-8?B?QjhxSkRDMHpxY2llbU0zVXA1bThXbFluK3J1RG92VEhLZE00c3NuMFVrMlU4?= =?utf-8?B?a21OVEZ2T0RSZmdUUDgrMzY4Q1d6emFMYUJkaFhDY3kvb0E5SjhHSllGMmg3?= =?utf-8?B?eXpyR3J4d09VanNlNDdtQzNDWWIrVjhDWmJYdS8xc3RjRy9wRXRYNGNPUFVu?= =?utf-8?B?cHZnWkttTW1ncmQrRXlSSENDdThieGFYYjRYWHNCSWVMRHVRSjhxYldzc0hG?= =?utf-8?B?Sjd4QVF0QythMFA2bG1Ibmo2QlBINUZFT0xySmdZNFdoRk5NMVJxclJwa2hI?= =?utf-8?B?T3lFZTJYcGlPZHp1RHVpd0YyVGwwajhYeUFxdzFERit2L3dWbEdKWWtoU1Mw?= =?utf-8?B?NWFTT3lwdUQ0aXBTTVdRNEZCY1JpdW1SNlF5T2R5M2k2Nm1CQ3BMWDh1cm95?= =?utf-8?B?Z1ltQmJHRDlSczJYcUJaRWFEeUxmK1UxZlJTV0lhREVoTTBMdHYyZTB1NVFO?= =?utf-8?B?cGEvSmhINnJqaEduMjZxdHFGRHRtLzNqeEFFbS9ucm9YNkordzFxMld3T3dZ?= =?utf-8?B?QzhsME5EN2F2OFBmelJZM2o2RVVFaGVZdHBqWVRmRW95VTJWTzYxK1QwQTN0?= =?utf-8?B?Qkx1cWhocENoWTZnQ2hUUnNLeVRKS1k1VzBlWGNzTE1OUjZvWEM3OUtqQlFO?= =?utf-8?B?NFZmeWpsNWlkR1E1amxzRUg0N2ZaZnBaZjl4bHZiWHQ4eThEcFdabkdkSmYx?= =?utf-8?B?eTMwSmpIcEtGRlN4emRUNkVRaHMzZUFsRnFBY0hBbU44cHR5cEI4cCtxRytN?= =?utf-8?B?dndVd3VNSU1OVG9ReHhkZ2xTUndkdklncXFpV3h2dHhiQXNQdWN5SkxvdjBZ?= =?utf-8?B?aDh1d3lOZXRFdHdpaUhZc0xwZWY4aC9ZZE9xYldDRWgzVE1PcytQNFJQQ0Iv?= =?utf-8?B?WHpyQS96T3lUSnhPQVFxT0RKUCs3d2RSY1NTSnd2SmtUcDJUYmJyRXpzQ3Bu?= =?utf-8?B?SFMwU0JSWXZvWVFUR2pTVWkrYkdsK25WVUhHR1Q4ZGVIaU5GSGtlOVByOW5I?= =?utf-8?B?S3ZWRkNrclFlb3lJeVBkcGVlYnpIamdRK3c4NzVVNlViNTJiQWlBdGhkVWs4?= =?utf-8?B?L25MTFVBcjJSeVJmb2NlcHA4dFpPdU5oeHpCeTA4WUt2UjdCMEt5OU5iUUhn?= =?utf-8?B?djFFVDZyVXd3N0cyaElTYzBIS2R2bEdxSlJvZ2IzbkkrTVJLTVBEK2p6cG5T?= =?utf-8?B?dmRUQ1NZcjBtdTFBYkZFeXNyWFhST0hxWmZ2eTgyZWpqczg3N3pPOVlXZHZO?= =?utf-8?B?UENlM0VWL3NwU2pTdi92THU1M0hnSE5iWjc3cmVmVkJXYU1qRUgzQTMzVUdi?= =?utf-8?B?dE91cHloMWlYM2tJQ2EyaGQzazJhejhHSnVRek1qK21lYnE4Rnd4ZEQweEU5?= =?utf-8?B?ZCt1VmlpaHpwOGJweVlPNHU1cnVObzlLZG1KUDlzZUFoV0V2OWhRZmR1ejkw?= =?utf-8?B?ZVZvTUlNdkE5NFdwSUNaVE5BUG1lSGlUSElPSS96TTZzZjFpNG5acmxvaTY0?= =?utf-8?B?ZU9RNlczZm5YSXlJME5kVUJhcUVWaU9CSXJITXQvYWRROHV4SFVLaEt2N2hS?= =?utf-8?B?L1dDdWJZbExaUTV4ZFl2ekhaV0pObjVCbkhCSmJ5TzBSdW5mM21xbzBIanlL?= =?utf-8?Q?AwK9vLaoL+lubTebkVn/2/dG4KM1WhC?= X-Microsoft-Exchange-Diagnostics: 1;AMSPR07MB312;6:f9xt8YjFihz6CtvuApUKN4TKYO4K46kotg8zpBzcT4u/bvPAngSiD4355ee1F6SPFU79YJ3WPZ9H9oHj9ORsShPdOS+AFiiYh65F1TW4jOd0MzBIzFsyb34LVzyuF7yp8NudqH3vWbEVLbcXw3adC7eMZo7c1N2ep2AOXHE2hXBQR81Kum8FnYVLQjI0fYHRqg7E9YRp+dqEE0nM3fY8SyGDk5IlwWScgCAK1B1WGNPpKOopNcTsSDXaSvB4w962h5C2seMLwl2k/D/jhN2TZE/Vj4ru/sZ7GEoQGk46lGQsnQ5LpTRkRmMpPaSiILPxV9eCiRLdD/NZkPIMJ/Kejg==;5:DC0FrbpIbbV1iFdbBY/iyVgTPWymj+r7cNr8riM0ILJKYEhJAtHRJnl6fISqM7pBBlES/ytPZ1PmWjOTvDTFRGuWq0jwTetA2HmtjEDCJDZbVSIVWMbibVb46jfeMepdF1xv+AAsiyTxu1ChbplREA==;24:hIfygQkb02GXZ+0bNfF5nOyxd+BpYGB7Qk+C2JrnxbFhEpUQKlHJEJLn2v+4wdUTbvT00ZdKyK3fBvtk6jUfTLS4f7FOckRcdV6g+fcyt9k=;7:8lzERUVfsj9aVMww5g4wLMC6rIL1thm1sMJLSLrXHwOfC69ZP0BRK09kU8EMhN2T+JXVRN/bc9WHRSkuogvU2Xa1iwsBTYq77bqFm5rG2jq7SxLqyzxvhsuxqhoc00oH6uAMceLHvyTDeN5RA5yxGRgsVEVllJzyUlDwgisaLaQpdeosDIs32ewnold8lcBEmBDVIdq44ZbcQMVHzq+oPtr8ERe7i/9yAu+QyWh81IM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Sep 2017 18:45:49.2861 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMSPR07MB312 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2017-09/txt/msg00250.txt.bz2 On 2017-07-18 05:38 PM, Pedro Alves wrote: > > On 07/18/2017 04:13 PM, Yao Qi wrote: >> Pedro Alves 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