[Qt-creator] Proposal: Adding std::(experimental::)optional

charleyb123 . charleyb123 at gmail.com
Fri Aug 26 16:49:18 CEST 2016


>
> >> <snip>, Pointers already have an optional value -- the null pointer
> >> constant. <snip>



> <snip>,
> Actually one could say that optional<T&> _is_ T* ;)
> So basically to make a difference in the API we’d need to change all
> pointers that are not optional to references.
>

IMHO, that is the correct approach.  This is a well-understood C++ language
feature:

void foo(Dog&);  // Instance required
void foo(Dog*);  // Instance optional

This is one of my biggest complaints with "reference-langauges" like Java,
and for any C++ API that does not appropriately use references:  You *must*
check for NULL when given a pointer.  That's exhausting and error-prone,
which is why references are better documentation and better convention when
you don't want to do that.

I have great concerns over APIs making ambitious use of optional<>.

An aside:  We are currently steeped in the tradition that "zero" is not a
legal address, but that is (quickly) becoming not-true for
process-containers, system-emulators and VMs, and new hardware (including
new CPUs).  That might be something about which we might want to start to
consider (it's a paradigm change that likely also messes with our API
decisions).

--charley
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/qt-creator/attachments/20160826/7f47b88f/attachment.html>


More information about the Qt-creator mailing list