Skip to content

Commit 57b792c

Browse files
Get rid of boost::optional leftovers (#6977)
1 parent d0ed29a commit 57b792c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+232
-218
lines changed

.clang-tidy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ Checks: >
1717
-bugprone-incorrect-enable-if,
1818
-bugprone-switch-missing-default-case,
1919
-bugprone-empty-catch,
20+
-bugprone-unchecked-optional-access,
2021
-clang-analyzer-*,
2122
-clang-diagnostic-deprecated-declarations,
2223
-clang-diagnostic-constant-conversion,

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
- NodeJS:
2525
- CHANGED: Use node-api instead of NAN. [#6452](https://github.com/Project-OSRM/osrm-backend/pull/6452)
2626
- Misc:
27+
- CHANGED: Get rid of boost::optional leftovers. [#6977](https://github.com/Project-OSRM/osrm-backend/pull/6977)
2728
- CHANGED: Use Link Time Optimisation whenever possible. [#6967](https://github.com/Project-OSRM/osrm-backend/pull/6967)
2829
- CHANGED: Use struct instead of tuple to define UnpackedPath. [#6974](https://github.com/Project-OSRM/osrm-backend/pull/6974)
2930
- CHANGED: Micro performance optimisation in map matching. [#6976](https://github.com/Project-OSRM/osrm-backend/pull/6976)

include/engine/api/base_parameters.hpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3333
#include "engine/hint.hpp"
3434
#include "util/coordinate.hpp"
3535

36-
#include <boost/optional.hpp>
36+
#include <optional>
3737

3838
#include <algorithm>
3939
#include <vector>
@@ -74,12 +74,12 @@ struct BaseParameters
7474
};
7575

7676
std::vector<util::Coordinate> coordinates;
77-
std::vector<boost::optional<Hint>> hints;
78-
std::vector<boost::optional<double>> radiuses;
79-
std::vector<boost::optional<Bearing>> bearings;
80-
std::vector<boost::optional<Approach>> approaches;
77+
std::vector<std::optional<Hint>> hints;
78+
std::vector<std::optional<double>> radiuses;
79+
std::vector<std::optional<Bearing>> bearings;
80+
std::vector<std::optional<Approach>> approaches;
8181
std::vector<std::string> exclude;
82-
boost::optional<OutputFormatType> format = OutputFormatType::JSON;
82+
std::optional<OutputFormatType> format = OutputFormatType::JSON;
8383

8484
// Adds hints to response which can be included in subsequent requests, see `hints` above.
8585
bool generate_hints = true;
@@ -90,10 +90,10 @@ struct BaseParameters
9090
SnappingType snapping = SnappingType::Default;
9191

9292
BaseParameters(std::vector<util::Coordinate> coordinates_ = {},
93-
std::vector<boost::optional<Hint>> hints_ = {},
94-
std::vector<boost::optional<double>> radiuses_ = {},
95-
std::vector<boost::optional<Bearing>> bearings_ = {},
96-
std::vector<boost::optional<Approach>> approaches_ = {},
93+
std::vector<std::optional<Hint>> hints_ = {},
94+
std::vector<std::optional<double>> radiuses_ = {},
95+
std::vector<std::optional<Bearing>> bearings_ = {},
96+
std::vector<std::optional<Approach>> approaches_ = {},
9797
bool generate_hints_ = true,
9898
std::vector<std::string> exclude = {},
9999
const SnappingType snapping_ = SnappingType::Default)
@@ -112,7 +112,7 @@ struct BaseParameters
112112
(approaches.empty() || approaches.size() == coordinates.size()) &&
113113
std::all_of(bearings.begin(),
114114
bearings.end(),
115-
[](const boost::optional<Bearing> &bearing_and_range)
115+
[](const std::optional<Bearing> &bearing_and_range)
116116
{
117117
if (bearing_and_range)
118118
{

include/engine/api/json_factory.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#include "util/coordinate.hpp"
1313
#include "util/json_container.hpp"
1414

15-
#include <boost/optional.hpp>
15+
#include <optional>
1616

1717
#include <algorithm>
1818
#include <iterator>
@@ -90,7 +90,7 @@ util::json::Object makeRouteStep(guidance::RouteStep step, util::json::Value geo
9090

9191
util::json::Object makeRoute(const guidance::Route &route,
9292
util::json::Array legs,
93-
boost::optional<util::json::Value> geometry,
93+
std::optional<util::json::Value> geometry,
9494
const char *weight_name);
9595

9696
// Creates a Waypoint without Hint, see the Hint overload below

include/engine/api/nearest_api.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class NearestAPI final : public BaseAPI
4545
flatbuffers::FlatBufferBuilder &fb_result) const
4646
{
4747
auto data_timestamp = facade.GetTimestamp();
48-
boost::optional<flatbuffers::Offset<flatbuffers::String>> data_version_string = boost::none;
48+
std::optional<flatbuffers::Offset<flatbuffers::String>> data_version_string = std::nullopt;
4949
if (!data_timestamp.empty())
5050
{
5151
data_version_string = fb_result.CreateString(data_timestamp);

include/engine/api/route_api.hpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -184,10 +184,10 @@ class RouteAPI : public BaseAPI
184184
return builder.CreateVectorOfStructs(coordinates);
185185
}
186186

187-
boost::optional<util::json::Value>
188-
MakeGeometry(boost::optional<std::vector<Coordinate>> &&annotations) const
187+
std::optional<util::json::Value>
188+
MakeGeometry(std::optional<std::vector<Coordinate>> &&annotations) const
189189
{
190-
boost::optional<util::json::Value> json_geometry;
190+
std::optional<util::json::Value> json_geometry;
191191
if (annotations)
192192
{
193193
auto begin = annotations->begin();
@@ -720,8 +720,7 @@ class RouteAPI : public BaseAPI
720720
std::vector<guidance::LegGeometry> &leg_geometries = legs_info.second;
721721

722722
auto route = guidance::assembleRoute(legs);
723-
boost::optional<util::json::Value> json_overview =
724-
MakeGeometry(MakeOverview(leg_geometries));
723+
std::optional<util::json::Value> json_overview = MakeGeometry(MakeOverview(leg_geometries));
725724

726725
std::vector<util::json::Value> step_geometries;
727726
const auto total_step_count =
@@ -997,10 +996,10 @@ class RouteAPI : public BaseAPI
997996
return result;
998997
}
999998

1000-
boost::optional<std::vector<Coordinate>>
999+
std::optional<std::vector<Coordinate>>
10011000
MakeOverview(const std::vector<guidance::LegGeometry> &leg_geometries) const
10021001
{
1003-
boost::optional<std::vector<Coordinate>> overview;
1002+
std::optional<std::vector<Coordinate>> overview;
10041003
if (parameters.overview != RouteParameters::OverviewType::False)
10051004
{
10061005
const auto use_simplification =

include/engine/api/route_parameters.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ struct RouteParameters : public BaseParameters
8282
const bool alternatives_,
8383
const GeometriesType geometries_,
8484
const OverviewType overview_,
85-
const boost::optional<bool> continue_straight_,
85+
const std::optional<bool> continue_straight_,
8686
Args &&...args_)
8787
// Once we perfectly-forward `args` (see #2990) this constructor can delegate to the one
8888
// below.
@@ -100,7 +100,7 @@ struct RouteParameters : public BaseParameters
100100
const bool annotations_,
101101
const GeometriesType geometries_,
102102
const OverviewType overview_,
103-
const boost::optional<bool> continue_straight_,
103+
const std::optional<bool> continue_straight_,
104104
Args &&...args_)
105105
: BaseParameters{std::forward<Args>(args_)...}, steps{steps_}, alternatives{alternatives_},
106106
number_of_alternatives{alternatives_ ? 1u : 0u}, annotations{annotations_},
@@ -118,7 +118,7 @@ struct RouteParameters : public BaseParameters
118118
const AnnotationsType annotations_,
119119
const GeometriesType geometries_,
120120
const OverviewType overview_,
121-
const boost::optional<bool> continue_straight_,
121+
const std::optional<bool> continue_straight_,
122122
Args &&...args_)
123123
: BaseParameters{std::forward<Args>(args_)...}, steps{steps_}, alternatives{alternatives_},
124124
number_of_alternatives{alternatives_ ? 1u : 0u},
@@ -135,7 +135,7 @@ struct RouteParameters : public BaseParameters
135135
const bool annotations_,
136136
const GeometriesType geometries_,
137137
const OverviewType overview_,
138-
const boost::optional<bool> continue_straight_,
138+
const std::optional<bool> continue_straight_,
139139
std::vector<std::size_t> waypoints_,
140140
const Args &&...args_)
141141
: BaseParameters{std::forward<Args>(args_)...}, steps{steps_}, alternatives{alternatives_},
@@ -153,7 +153,7 @@ struct RouteParameters : public BaseParameters
153153
const AnnotationsType annotations_,
154154
const GeometriesType geometries_,
155155
const OverviewType overview_,
156-
const boost::optional<bool> continue_straight_,
156+
const std::optional<bool> continue_straight_,
157157
std::vector<std::size_t> waypoints_,
158158
Args &&...args_)
159159
: BaseParameters{std::forward<Args>(args_)...}, steps{steps_}, alternatives{alternatives_},
@@ -172,7 +172,7 @@ struct RouteParameters : public BaseParameters
172172
AnnotationsType annotations_type = AnnotationsType::None;
173173
GeometriesType geometries = GeometriesType::Polyline;
174174
OverviewType overview = OverviewType::Simplified;
175-
boost::optional<bool> continue_straight;
175+
std::optional<bool> continue_straight;
176176
std::vector<std::size_t> waypoints;
177177

178178
bool IsValid() const

include/engine/api/trip_parameters.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3030

3131
#include "engine/api/route_parameters.hpp"
3232

33-
#include <boost/optional.hpp>
33+
#include <optional>
3434
#include <vector>
3535

3636
namespace osrm::engine::api

include/engine/datafacade/contiguous_internalmem_datafacade.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade
369369
std::vector<PhantomNodeWithDistance>
370370
NearestPhantomNodesInRange(const util::Coordinate input_coordinate,
371371
const double max_distance,
372-
const boost::optional<Bearing> bearing,
372+
const std::optional<Bearing> bearing,
373373
const Approach approach,
374374
const bool use_all_edges) const override final
375375
{
@@ -382,20 +382,20 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade
382382
std::vector<PhantomNodeWithDistance>
383383
NearestPhantomNodes(const util::Coordinate input_coordinate,
384384
const size_t max_results,
385-
const boost::optional<double> max_distance,
386-
const boost::optional<Bearing> bearing,
385+
const std::optional<double> max_distance,
386+
const std::optional<Bearing> bearing,
387387
const Approach approach) const override final
388388
{
389389
BOOST_ASSERT(m_geospatial_query.get());
390390

391391
return m_geospatial_query->NearestPhantomNodes(
392-
input_coordinate, approach, max_results, max_distance, bearing, boost::none);
392+
input_coordinate, approach, max_results, max_distance, bearing, std::nullopt);
393393
}
394394

395395
PhantomCandidateAlternatives
396396
NearestCandidatesWithAlternativeFromBigComponent(const util::Coordinate input_coordinate,
397-
const boost::optional<double> max_distance,
398-
const boost::optional<Bearing> bearing,
397+
const std::optional<double> max_distance,
398+
const std::optional<Bearing> bearing,
399399
const Approach approach,
400400
const bool use_all_edges) const override final
401401
{

include/engine/datafacade/datafacade_base.hpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
#include <cstddef>
3636

3737
#include <engine/bearing.hpp>
38+
#include <optional>
3839
#include <string>
3940
#include <string_view>
4041
#include <utility>
@@ -126,21 +127,21 @@ class BaseDataFacade
126127
virtual std::vector<PhantomNodeWithDistance>
127128
NearestPhantomNodesInRange(const util::Coordinate input_coordinate,
128129
const double max_distance,
129-
const boost::optional<Bearing> bearing,
130+
const std::optional<Bearing> bearing,
130131
const Approach approach,
131132
const bool use_all_edges) const = 0;
132133

133134
virtual std::vector<PhantomNodeWithDistance>
134135
NearestPhantomNodes(const util::Coordinate input_coordinate,
135136
const size_t max_results,
136-
const boost::optional<double> max_distance,
137-
const boost::optional<Bearing> bearing,
137+
const std::optional<double> max_distance,
138+
const std::optional<Bearing> bearing,
138139
const Approach approach) const = 0;
139140

140141
virtual PhantomCandidateAlternatives
141142
NearestCandidatesWithAlternativeFromBigComponent(const util::Coordinate input_coordinate,
142-
const boost::optional<double> max_distance,
143-
const boost::optional<Bearing> bearing,
143+
const std::optional<double> max_distance,
144+
const std::optional<Bearing> bearing,
144145
const Approach approach,
145146
const bool use_all_edges) const = 0;
146147

include/engine/engine_config.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ struct EngineConfig final
7979
int max_locations_map_matching = -1;
8080
double max_radius_map_matching = -1.0;
8181
int max_results_nearest = -1;
82-
boost::optional<double> default_radius = -1.0;
82+
double default_radius = -1.0;
8383
int max_alternatives = 3; // set an arbitrary upper bound; can be adjusted by user
8484
bool use_shared_memory = true;
8585
std::filesystem::path memory_file;

include/engine/geospatial_query.hpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
#include "osrm/coordinate.hpp"
1414

15-
#include <boost/optional.hpp>
15+
#include <optional>
1616

1717
#include <algorithm>
1818
#include <cmath>
@@ -53,8 +53,8 @@ template <typename RTreeT, typename DataFacadeT> class GeospatialQuery
5353
NearestPhantomNodes(const util::Coordinate input_coordinate,
5454
const Approach approach,
5555
const double max_distance,
56-
const boost::optional<Bearing> bearing_with_range,
57-
const boost::optional<bool> use_all_edges) const
56+
const std::optional<Bearing> bearing_with_range,
57+
const std::optional<bool> use_all_edges) const
5858
{
5959
auto results = rtree.SearchInRange(
6060
input_coordinate,
@@ -85,9 +85,9 @@ template <typename RTreeT, typename DataFacadeT> class GeospatialQuery
8585
NearestPhantomNodes(const util::Coordinate input_coordinate,
8686
const Approach approach,
8787
const size_t max_results,
88-
const boost::optional<double> max_distance,
89-
const boost::optional<Bearing> bearing_with_range,
90-
const boost::optional<bool> use_all_edges) const
88+
const std::optional<double> max_distance,
89+
const std::optional<Bearing> bearing_with_range,
90+
const std::optional<bool> use_all_edges) const
9191
{
9292
auto results = rtree.Nearest(
9393
input_coordinate,
@@ -121,9 +121,9 @@ template <typename RTreeT, typename DataFacadeT> class GeospatialQuery
121121
PhantomCandidateAlternatives NearestCandidatesWithAlternativeFromBigComponent(
122122
const util::Coordinate input_coordinate,
123123
const Approach approach,
124-
const boost::optional<double> max_distance,
125-
const boost::optional<Bearing> bearing_with_range,
126-
const boost::optional<bool> use_all_edges) const
124+
const std::optional<double> max_distance,
125+
const std::optional<Bearing> bearing_with_range,
126+
const std::optional<bool> use_all_edges) const
127127
{
128128
bool has_nearest = false;
129129
bool has_big_component = false;

include/engine/guidance/assemble_steps.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
#include "util/guidance/turn_lanes.hpp"
1818
#include "util/typedefs.hpp"
1919

20-
#include <boost/optional.hpp>
2120
#include <cstddef>
2221
#include <guidance/turn_bearing.hpp>
22+
#include <optional>
2323
#include <vector>
2424

2525
namespace osrm::engine::guidance

include/engine/guidance/route_leg.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
#include "engine/guidance/route_step.hpp"
55

6-
#include <boost/optional.hpp>
6+
#include <optional>
77

88
#include <string>
99
#include <vector>

include/engine/internal_route_result.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#include "util/integer_range.hpp"
1616
#include "util/typedefs.hpp"
1717

18-
#include <boost/optional.hpp>
18+
#include <optional>
1919
#include <vector>
2020

2121
namespace osrm::engine
@@ -42,7 +42,7 @@ struct PathData
4242
// Source of the speed value on this road segment
4343
DatasourceID datasource_id;
4444
// If segment precedes a turn, ID of the turn itself
45-
boost::optional<EdgeID> turn_edge;
45+
std::optional<EdgeID> turn_edge;
4646
};
4747

4848
struct InternalRouteResult

include/engine/plugins/match.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class MatchPlugin : public BasePlugin
2222

2323
MatchPlugin(const int max_locations_map_matching,
2424
const double max_radius_map_matching,
25-
const boost::optional<double> default_radius)
25+
const std::optional<double> default_radius)
2626
: BasePlugin(default_radius), max_locations_map_matching(max_locations_map_matching),
2727
max_radius_map_matching(max_radius_map_matching)
2828
{

include/engine/plugins/nearest.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace osrm::engine::plugins
1313
class NearestPlugin final : public BasePlugin
1414
{
1515
public:
16-
explicit NearestPlugin(const int max_results, const boost::optional<double> default_radius);
16+
explicit NearestPlugin(const int max_results, const std::optional<double> default_radius);
1717

1818
Status HandleRequest(const RoutingAlgorithmsInterface &algorithms,
1919
const api::NearestParameters &params,

0 commit comments

Comments
 (0)