From 7e403195e574be5174815a51cf5c42f06f76a87a Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Sat, 30 Nov 2019 17:48:32 +0100 Subject: 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 , 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 fed7c3deb3f4ec81f78967c2d7f3c4554398cb9d "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|\|o3tl/optional.hxx|g' -e 's/\/o3tl\1::\2\3optional/g' -e 's/\/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 --- sd/inc/pch/precompiled_sd.hxx | 4 ++-- sd/inc/pch/precompiled_sdui.hxx | 2 +- sd/source/filter/ppt/pptin.cxx | 4 ++-- sd/source/ui/app/sdmod2.cxx | 2 +- sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx | 6 +++--- sd/source/ui/slidesorter/controller/SlsVisibleAreaManager.cxx | 10 +++++----- .../ui/slidesorter/inc/controller/SlsVisibleAreaManager.hxx | 4 ++-- 7 files changed, 16 insertions(+), 16 deletions(-) (limited to 'sd') diff --git a/sd/inc/pch/precompiled_sd.hxx b/sd/inc/pch/precompiled_sd.hxx index cea2898dfbca..475d59df9c63 100644 --- a/sd/inc/pch/precompiled_sd.hxx +++ b/sd/inc/pch/precompiled_sd.hxx @@ -39,8 +39,8 @@ #include #include #include -#include -#include +#include +#include #include #include #endif // PCH_LEVEL >= 1 diff --git a/sd/inc/pch/precompiled_sdui.hxx b/sd/inc/pch/precompiled_sdui.hxx index 0922819f0e6f..bfd2e4bc1858 100644 --- a/sd/inc/pch/precompiled_sdui.hxx +++ b/sd/inc/pch/precompiled_sdui.hxx @@ -50,7 +50,7 @@ #include #include #include -#include +#include #include #endif // PCH_LEVEL >= 1 #if PCH_LEVEL >= 2 diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx index b641545a8aca..cd1d62012a72 100644 --- a/sd/source/filter/ppt/pptin.cxx +++ b/sd/source/filter/ppt/pptin.cxx @@ -87,7 +87,7 @@ #include #include -#include +#include #include #include @@ -583,7 +583,7 @@ bool ImplSdPPTImport::Import() pPage->SetAutoLayout( AUTOLAYOUT_NOTES, true ); if ( nMasterNum ) { - boost::optional< sal_Int16 > oStartNumbering; + o3tl::optional< sal_Int16 > oStartNumbering; SfxStyleSheet* pSheet; if ( nMasterNum == 1 ) { diff --git a/sd/source/ui/app/sdmod2.cxx b/sd/source/ui/app/sdmod2.cxx index 1a09eb06f44b..5bc72ad5fde9 100644 --- a/sd/source/ui/app/sdmod2.cxx +++ b/sd/source/ui/app/sdmod2.cxx @@ -335,7 +335,7 @@ IMPL_LINK(SdModule, CalcFieldValueHdl, EditFieldInfo*, pInfo, void) } else if ( dynamic_cast< const SdrMeasureField* >(pField)) { - pInfo->SetFieldColor(boost::optional()); // clear the field color + pInfo->SetFieldColor(o3tl::optional()); // clear the field color } else if ((pCustomPropertyField = dynamic_cast(pField)) != nullptr) { diff --git a/sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx b/sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx index 23378029bb91..d54b09a91a90 100644 --- a/sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx +++ b/sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx @@ -51,7 +51,7 @@ #include #include #include -#include +#include #include namespace { @@ -198,7 +198,7 @@ protected: virtual bool ProcessDragEvent (SelectionFunction::EventDescriptor& rDescriptor) override; private: - ::boost::optional maButtonDownLocation; + ::o3tl::optional maButtonDownLocation; /** Select all pages between and including the selection anchor and the specified page. @@ -1183,7 +1183,7 @@ void NormalModeHandler::RangeSelect (const model::SharedPageDescriptor& rpDescri void NormalModeHandler::ResetButtonDownLocation() { - maButtonDownLocation = ::boost::optional(); + maButtonDownLocation = ::o3tl::optional(); } //===== MultiSelectionModeHandler ============================================= diff --git a/sd/source/ui/slidesorter/controller/SlsVisibleAreaManager.cxx b/sd/source/ui/slidesorter/controller/SlsVisibleAreaManager.cxx index ff16fb0e4dac..b495de5d03d6 100644 --- a/sd/source/ui/slidesorter/controller/SlsVisibleAreaManager.cxx +++ b/sd/source/ui/slidesorter/controller/SlsVisibleAreaManager.cxx @@ -107,7 +107,7 @@ void VisibleAreaManager::MakeVisible() return; const Point aCurrentTopLeft (pWindow->PixelToLogic(Point(0,0))); - const ::boost::optional aNewVisibleTopLeft (GetRequestedTopLeft()); + const ::o3tl::optional aNewVisibleTopLeft (GetRequestedTopLeft()); maVisibleRequests.clear(); if ( ! aNewVisibleTopLeft) return; @@ -121,11 +121,11 @@ void VisibleAreaManager::MakeVisible() aAnimation(1.0); } -::boost::optional VisibleAreaManager::GetRequestedTopLeft() const +::o3tl::optional VisibleAreaManager::GetRequestedTopLeft() const { sd::Window *pWindow (mrSlideSorter.GetContentWindow().get()); if ( ! pWindow) - return ::boost::optional(); + return ::o3tl::optional(); // Get the currently visible area and the model area. const ::tools::Rectangle aVisibleArea (pWindow->PixelToLogic( @@ -166,9 +166,9 @@ void VisibleAreaManager::MakeVisible() const Point aRequestedTopLeft (nVisibleLeft, nVisibleTop); if (aRequestedTopLeft == aVisibleArea.TopLeft()) - return ::boost::optional(); + return ::o3tl::optional(); else - return ::boost::optional(aRequestedTopLeft); + return ::o3tl::optional(aRequestedTopLeft); } //===== VisibleAreaManager::TemporaryDisabler ================================= diff --git a/sd/source/ui/slidesorter/inc/controller/SlsVisibleAreaManager.hxx b/sd/source/ui/slidesorter/inc/controller/SlsVisibleAreaManager.hxx index acd74e2b5ffc..8ac72f786ec2 100644 --- a/sd/source/ui/slidesorter/inc/controller/SlsVisibleAreaManager.hxx +++ b/sd/source/ui/slidesorter/inc/controller/SlsVisibleAreaManager.hxx @@ -21,7 +21,7 @@ #define INCLUDED_SD_SOURCE_UI_SLIDESORTER_INC_CONTROLLER_SLSVISIBLEAREAMANAGER_HXX #include -#include +#include #include #include @@ -81,7 +81,7 @@ private: int mnDisableCount; void MakeVisible(); - ::boost::optional GetRequestedTopLeft() const; + ::o3tl::optional GetRequestedTopLeft() const; }; } } } // end of namespace ::sd::slidesorter::view -- cgit