From bde44c18ef3d6302dae723e6ef431f87e5764ec9 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Fri, 30 Aug 2019 12:41:25 -0400 Subject: Notes about C++-11 for qpdf 10 --- TODO | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/TODO b/TODO index bd0f1a1e..ad54206c 100644 --- a/TODO +++ b/TODO @@ -8,6 +8,36 @@ Fuzz Errors * Timeout in xref reconstruction (won't fix): 15659 * Out of memory: 15730 +C++-11 (for qpdf 10) +==================== + +* Consider requiring C++-11 for qpdf 10. + +* My c++11 branch adds autoconf tests to require C++-11 and + re-implements PointerHolder so that it is interchangeable with + std::shared_ptr. Once this is in master, it will be possible to + globally replace PointerHolder with std::shared_ptr. This will break + binary compatibility, but if people want source compatibility, they + just have to explicitly include qpdf/PointerHolder.hh. We should + actually look at every use of PointerHolder to see which ones need + to be std::shared_ptr and which ones can be std::unique_ptr. For + source compatibility, all uses of PointerHolder in the API should be + changed to std::shared_ptr, though most likely they have to be that + anyway since std::unique_ptr is not copiable. + +* QIntC.hh could be simplified with type_traits. + +* Search for ::iterator and ::const_iterator and replace with either + auto or foreach-style iteration. + +* There may be some places where std::function and lambdas can + simplify handlers rather than using classes with apply methods. + +* Find places where we declare but don't define copy and assignment + and replace with deleted methods to move errors from link to compile + time. + + Lexical ======= -- cgit v1.2.3-70-g09d2