aboutsummaryrefslogtreecommitdiffstats
path: root/TODO
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2019-08-30 18:41:25 +0200
committerJay Berkenbilt <ejb@ql.org>2019-08-30 18:41:25 +0200
commitbde44c18ef3d6302dae723e6ef431f87e5764ec9 (patch)
tree8dfef22713f3dc333029deab1bc6a3d86e98056d /TODO
parent8c69f8495de1791decff3ae37f1da2383415c144 (diff)
downloadqpdf-bde44c18ef3d6302dae723e6ef431f87e5764ec9.tar.zst
Notes about C++-11 for qpdf 10
Diffstat (limited to 'TODO')
-rw-r--r--TODO30
1 files changed, 30 insertions, 0 deletions
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
=======