[core] add error for non-virtual destructor deletes + add virtual dtors

This commit is contained in:
Konstantin Käfer
2017-05-18 14:30:20 +02:00
parent 5d7e54a815
commit eae2c715f1
5 changed files with 10 additions and 4 deletions

View File

@@ -66,7 +66,7 @@ endif(WITH_COVERAGE)
set(CMAKE_CONFIGURATION_TYPES Debug Release)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -ftemplate-depth=1024 -Wall -Wextra -Wshadow -Werror -Wno-variadic-macros -Wno-unknown-pragmas")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -ftemplate-depth=1024 -Wall -Wextra -Wshadow -Wnon-virtual-dtor -Werror -Wno-variadic-macros -Wno-unknown-pragmas")
if(APPLE)
# -Wno-error=unused-command-line-argument is required due to https://llvm.org/bugs/show_bug.cgi?id=7798
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=unused-command-line-argument")

View File

@@ -10,6 +10,8 @@ namespace mbgl {
class MapObserver {
public:
virtual ~MapObserver() = default;
static MapObserver& nullObserver() {
static MapObserver mapObserver;
return mapObserver;

View File

@@ -93,6 +93,8 @@ public:
// particular attribute & uniform logic needed by each possible type of the {Text,Icon}Size properties.
class SymbolSizeBinder {
public:
virtual ~SymbolSizeBinder() = default;
using Uniforms = gl::Uniforms<
uniforms::u_is_size_zoom_constant,
uniforms::u_is_size_feature_constant,
@@ -129,7 +131,7 @@ Range<float> getCoveringStops(Stops s, float lowerZoom, float upperZoom) {
};
}
class ConstantSymbolSizeBinder : public SymbolSizeBinder {
class ConstantSymbolSizeBinder final : public SymbolSizeBinder {
public:
using PropertyValue = variant<float, style::CameraFunction<float>>;
@@ -198,7 +200,7 @@ public:
optional<style::CameraFunction<float>> function;
};
class SourceFunctionSymbolSizeBinder : public SymbolSizeBinder {
class SourceFunctionSymbolSizeBinder final : public SymbolSizeBinder {
public:
using Vertex = gl::detail::Vertex<gl::Attribute<uint16_t, 1>>;
using VertexVector = gl::VertexVector<Vertex>;
@@ -251,7 +253,7 @@ public:
optional<VertexBuffer> buffer;
};
class CompositeFunctionSymbolSizeBinder: public SymbolSizeBinder {
class CompositeFunctionSymbolSizeBinder final : public SymbolSizeBinder {
public:
using Vertex = SymbolSizeAttributes::Vertex;
using VertexVector = gl::VertexVector<Vertex>;

View File

@@ -36,6 +36,7 @@ using IconDependencies = std::set<std::string>;
class IconRequestor {
public:
virtual ~IconRequestor() = default;
virtual void onIconsAvailable(IconMap) = 0;
};

View File

@@ -29,6 +29,7 @@ class Context;
class GlyphRequestor {
public:
virtual ~GlyphRequestor() = default;
virtual void onGlyphsAvailable(GlyphPositionMap) = 0;
};