office-gobmx/slideshow/source/inc
Stephan Bergmann 7e403195e5 Introduce o3tl::optional as an alias for std::optional
...with a boost::optional fallback for Xcode < 10 (as std::optional is only
available starting with Xcode 10 according to
<https://en.cppreference.com/w/cpp/compiler_support>, and our baseline for iOS
and macOS is still Xcode 9.3 according to README.md).  And mechanically rewrite
all code to use o3tl::optional instead of boost::optional.

One immediate benefit is that disabling -Wmaybe-uninitialized for GCC as per
fed7c3deb3 "Slience bogus
-Werror=maybe-uninitialized" should no longer be necessary (and whose check
happened to no longer trigger for GCC 10 trunk, even though that compiler would
still emit bogus -Wmaybe-uninitialized for uses of boost::optional under
--enable-optimized, which made me ponder whether this switch from
boost::optional to std::optional would be a useful thing to do; I keep that
configure.ac check for now, though, and will only remove it in a follow up
commit).

Another longer-term benefit is that the code is now already in good shape for an
eventual switch to std::optional (a switch we would have done anyway once we no
longer need to support Xcode < 10).

Only desktop/qa/desktop_lib/test_desktop_lib.cxx heavily uses
boost::property_tree::ptree::get_child_optional returning boost::optional, so
let it keep using boost::optional for now.

After a number of preceding commits have paved the way for this change, this
commit is completely mechanical, done with

> git ls-files -z | grep -vz -e '^bin/find-unneeded-includes$' -e '^configure.ac$' -e '^desktop/qa/desktop_lib/test_desktop_lib.cxx$' -e '^dictionaries$' -e '^external/' -e '^helpcontent2$' -e '^include/IwyuFilter_include.yaml$' -e '^sc/IwyuFilter_sc.yaml$' -e '^solenv/gdb/boost/optional.py$' -e '^solenv/vs/LibreOffice.natvis$' -e '^translations$' -e '\.svg$' | xargs -0 sed -i -E -e 's|\<boost(/optional)?/optional\.hpp\>|o3tl/optional.hxx|g' -e 's/\<boost(\s*)::(\s*)(make_)?optional\>/o3tl\1::\2\3optional/g' -e 's/\<boost(\s*)::(\s*)none\>/o3tl\1::\2nullopt/g'

(before committing include/o3tl/optional.hxx, and relying on some GNU features).
It excludes some files where mention of boost::optional et al should apparently
not be changed (and the sub-repo directory stubs).  It turned out that all uses
of boost::none across the code base were in combination with boost::optional, so
had all to be rewritten as o3tl::nullopt.

Change-Id: Ibfd9f4b3d5a8aee6e6eed310b988c4e5ffd8b11b
Reviewed-on: https://gerrit.libreoffice.org/84128
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-01 14:57:16 +01:00
..
activitiesfactory.hxx Introduce o3tl::optional as an alias for std::optional 2019-12-01 14:57:16 +01:00
activitiesqueue.hxx
activity.hxx
animatableshape.hxx
animatedsprite.hxx Introduce o3tl::optional as an alias for std::optional 2019-12-01 14:57:16 +01:00
animation.hxx
animationactivity.hxx
animationeventhandler.hxx
animationfactory.hxx
animationnode.hxx
animationnodefactory.hxx
attributableshape.hxx
attributemap.hxx
basecontainernode.hxx
basenode.hxx
boolanimation.hxx
coloranimation.hxx
cursormanager.hxx
delayevent.hxx
disposable.hxx
doctreenode.hxx
doctreenodesupplier.hxx
enumanimation.hxx
event.hxx
eventhandler.hxx
eventmultiplexer.hxx
eventqueue.hxx
expressionnode.hxx
expressionnodefactory.hxx
framerate.hxx
hslcolor.hxx
hslcoloranimation.hxx
hyperlinkarea.hxx
iexternalmediashapebase.hxx
interruptabledelayevent.hxx
intrinsicanimationeventhandler.hxx
listenercontainer.hxx
mediafilemanager.hxx
mouseeventhandler.hxx
numberanimation.hxx
pairanimation.hxx
pauseeventhandler.hxx
rgbcolor.hxx
screenupdater.hxx
shape.hxx
shapeattributelayer.hxx
shapeattributelayerholder.hxx
shapeimporter.hxx
shapelistenereventhandler.hxx
shapemanager.hxx
shapemaps.hxx
shapesubset.hxx
slide.hxx
slidebitmap.hxx
slideshowcontext.hxx
slideshowexceptions.hxx
slideview.hxx
smilfunctionparser.hxx
soundplayer.hxx
stringanimation.hxx
subsettableshapemanager.hxx
tools.hxx
transitionfactory.hxx
transitioninfo.hxx
unoview.hxx
unoviewcontainer.hxx
usereventqueue.hxx
view.hxx
vieweventhandler.hxx
viewlayer.hxx
viewupdate.hxx
wakeupevent.hxx