summaryrefslogtreecommitdiff
path: root/src/mbgl/map/map_options.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/map/map_options.cpp')
-rw-r--r--src/mbgl/map/map_options.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/mbgl/map/map_options.cpp b/src/mbgl/map/map_options.cpp
index ddb3f8e3be..c1146ab0bc 100644
--- a/src/mbgl/map/map_options.cpp
+++ b/src/mbgl/map/map_options.cpp
@@ -10,39 +10,42 @@ public:
bool crossSourceCollisions = true;
};
-MapOptions::MapOptions() : impl_(std::make_shared<MapOptions::Impl>()) {}
+// These requires the complete type of Impl.
+MapOptions::MapOptions() : impl_(std::make_unique<Impl>()) {}
MapOptions::~MapOptions() = default;
+MapOptions::MapOptions(MapOptions&&) = default;
+MapOptions::MapOptions(const MapOptions& other) : impl_(std::make_unique<Impl>(*other.impl_)) {}
-MapOptions& MapOptions::withMapMode(MapMode mode) {
+MapOptions MapOptions::withMapMode(MapMode mode) {
impl_->mapMode = mode;
- return *this;
+ return std::move(*this);
}
MapMode MapOptions::mapMode() const {
return impl_->mapMode;
}
-MapOptions& MapOptions::withConstrainMode(ConstrainMode mode) {
+MapOptions MapOptions::withConstrainMode(ConstrainMode mode) {
impl_->constrainMode = mode;
- return *this;
+ return std::move(*this);
}
ConstrainMode MapOptions::constrainMode() const {
return impl_->constrainMode;
}
-MapOptions& MapOptions::withViewportMode(ViewportMode mode) {
+MapOptions MapOptions::withViewportMode(ViewportMode mode) {
impl_->viewportMode = mode;
- return *this;
+ return std::move(*this);
}
ViewportMode MapOptions::viewportMode() const {
return impl_->viewportMode;
}
-MapOptions& MapOptions::withCrossSourceCollisions(bool enableCollisions) {
+MapOptions MapOptions::withCrossSourceCollisions(bool enableCollisions) {
impl_->crossSourceCollisions = enableCollisions;
- return *this;
+ return std::move(*this);
}
bool MapOptions::crossSourceCollisions() const {