From: <ni...@ly...> - 2017-01-24 21:13:57
|
Compiling iverilog using gcc-6.2 produces lots of warnings about auto_ptr being deprecated. It's used in three files, and the following command replaces them all by unique_ptr. git grep -l auto_ptr |xargs sed -i 's/auto_ptr/unique_ptr/' I just wanted to test if it's this easy, and I think it is. I've verified that compilation succeeds (with lot less warnings) and make check succeeds as well. I haven't tried the external testsuite, though. I'm no real C++ guru, but my understanding is that auto_ptr has a copy constructor and an assignment operator destroying the source operand, which is a bit dangerous an counter-intuitive. While unique_ptr only has a move constructor (a relatively new C++ feature) and no copy constructor or assignment. Instead, attempts to copy result in compile time errors, except when the compiler can infer a move, e.g., when returning a unique_ptr. That simple substitution seemed to work means that iverilog doesn't do any dangerous copying of its auto_ptrs. Regards, /Niels -- Niels Möller. PGP-encrypted email is preferred. Keyid 368C6677. Internet email is subject to wholesale government surveillance. |