Browse Source

removed final specifier

Michele Caini 7 years ago
parent
commit
f0926f1cc7

+ 2 - 2
src/entt/core/algorithm.hpp

@@ -18,7 +18,7 @@ namespace entt {
  * This class fills the gap by wrapping some flavors of `std::sort` in a
  * function object.
  */
-struct std_sort final {
+struct std_sort {
     /**
      * @brief Sorts the elements in a range.
      *
@@ -40,7 +40,7 @@ struct std_sort final {
 
 
 /*! @brief Function object for performing insertion sort. */
-struct insertion_sort final {
+struct insertion_sort {
     /**
      * @brief Sorts the elements in a range.
      *

+ 2 - 2
src/entt/core/hashed_string.hpp

@@ -19,8 +19,8 @@ namespace entt {
  * Because of that, a hashed string can also be used in constant expressions if
  * required.
  */
-class hashed_string final {
-    struct const_wrapper final {
+class hashed_string {
+    struct const_wrapper {
         // non-explicit constructor on purpose
         constexpr const_wrapper(const char *str) ENTT_NOEXCEPT: str{str} {}
         const char *str;

+ 1 - 1
src/entt/core/ident.hpp

@@ -40,7 +40,7 @@ namespace entt {
  * @tparam Types List of types for which to generate identifiers.
  */
 template<typename... Types>
-class identifier final {
+class identifier {
     using tuple_type = std::tuple<std::decay_t<Types>...>;
 
     template<typename Type, std::size_t... Indexes>

+ 1 - 1
src/entt/entity/helper.hpp

@@ -17,7 +17,7 @@ namespace entt {
  * @tparam Entity A valid entity type (see entt_traits for more details).
  */
 template<bool Const, typename Entity>
-struct as_view final {
+struct as_view {
     /*! @brief Type of registry to convert. */
     using registry_type = std::conditional_t<Const, const entt::registry<Entity>, entt::registry<Entity>>;
 

+ 1 - 1
src/entt/entity/prototype.hpp

@@ -37,7 +37,7 @@ namespace entt {
  * @tparam Entity A valid entity type (see entt_traits for more details).
  */
 template<typename Entity>
-class prototype final {
+class prototype {
     using basic_fn_type = void(const prototype &, registry<Entity> &, const Entity);
     using component_type = typename registry<Entity>::component_type;
 

+ 3 - 3
src/entt/entity/snapshot.hpp

@@ -35,7 +35,7 @@ class registry;
  * @tparam Entity A valid entity type (see entt_traits for more details).
  */
 template<typename Entity>
-class snapshot final {
+class snapshot {
     /*! @brief A registry is allowed to create snapshots. */
     friend class registry<Entity>;
 
@@ -197,7 +197,7 @@ private:
  * @tparam Entity A valid entity type (see entt_traits for more details).
  */
 template<typename Entity>
-class snapshot_loader final {
+class snapshot_loader {
     /*! @brief A registry is allowed to create snapshot loaders. */
     friend class registry<Entity>;
 
@@ -343,7 +343,7 @@ private:
  * @tparam Entity A valid entity type (see entt_traits for more details).
  */
 template<typename Entity>
-class continuous_loader final {
+class continuous_loader {
     using traits_type = entt_traits<Entity>;
 
     void destroy(Entity entity) {

+ 3 - 3
src/entt/entity/sparse_set.hpp

@@ -61,7 +61,7 @@ template<typename Entity>
 class sparse_set<Entity> {
     using traits_type = entt_traits<Entity>;
 
-    class iterator final {
+    class iterator {
         friend class sparse_set<Entity>;
 
         using direct_type = const std::vector<Entity>;
@@ -519,7 +519,7 @@ class sparse_set<Entity, Type>: public sparse_set<Entity> {
     using traits_type = entt_traits<Entity>;
 
     template<bool Const, bool = std::is_empty_v<Type>>
-    class iterator final {
+    class iterator {
         friend class sparse_set<Entity, Type>;
 
         using instance_type = std::conditional_t<Const, const std::vector<Type>, std::vector<Type>>;
@@ -627,7 +627,7 @@ class sparse_set<Entity, Type>: public sparse_set<Entity> {
     };
 
     template<bool Const>
-    class iterator<Const, true> final {
+    class iterator<Const, true> {
         friend class sparse_set<Entity, Type>;
 
         using instance_type = std::conditional_t<Const, const Type, Type>;

+ 3 - 3
src/entt/entity/view.hpp

@@ -68,7 +68,7 @@ class registry;
  * @tparam Component Types of components iterated by the view.
  */
 template<typename Entity, typename... Component>
-class persistent_view final {
+class persistent_view {
     static_assert(sizeof...(Component));
 
     /*! @brief A registry is allowed to create views. */
@@ -359,7 +359,7 @@ private:
  * @tparam Component Types of components iterated by the view.
  */
 template<typename Entity, typename... Component>
-class view final {
+class view {
     static_assert(sizeof...(Component) > 1);
 
     /*! @brief A registry is allowed to create views. */
@@ -714,7 +714,7 @@ private:
  * @tparam Component Type of component iterated by the view.
  */
 template<typename Entity, typename Component>
-class view<Entity, Component> final {
+class view<Entity, Component> {
     /*! @brief A registry is allowed to create views. */
     friend class registry<Entity>;
 

+ 1 - 1
src/entt/locator/locator.hpp

@@ -23,7 +23,7 @@ namespace entt {
  * @tparam Service Type of service managed by the locator.
  */
 template<typename Service>
-struct service_locator final {
+struct service_locator {
     /*! @brief Type of service offered. */
     using service_type = Service;
 

+ 18 - 18
src/entt/meta/meta.hpp

@@ -41,7 +41,7 @@ namespace internal {
 struct meta_type_node;
 
 
-struct meta_prop_node final {
+struct meta_prop_node {
     meta_prop_node * const next;
     meta_any(* const key)();
     meta_any(* const value)();
@@ -49,7 +49,7 @@ struct meta_prop_node final {
 };
 
 
-struct meta_base_node final {
+struct meta_base_node {
     meta_base_node * const next;
     meta_type_node * const parent;
     meta_type_node *(* const type)();
@@ -58,7 +58,7 @@ struct meta_base_node final {
 };
 
 
-struct meta_conv_node final {
+struct meta_conv_node {
     meta_conv_node * const next;
     meta_type_node * const parent;
     meta_type_node *(* const type)();
@@ -67,7 +67,7 @@ struct meta_conv_node final {
 };
 
 
-struct meta_ctor_node final {
+struct meta_ctor_node {
     using size_type = std::size_t;
     meta_ctor_node * const next;
     meta_type_node * const parent;
@@ -79,14 +79,14 @@ struct meta_ctor_node final {
 };
 
 
-struct meta_dtor_node final {
+struct meta_dtor_node {
     meta_type_node * const parent;
     bool(* const invoke)(meta_handle);
     meta_dtor(* const meta)();
 };
 
 
-struct meta_data_node final {
+struct meta_data_node {
     const hashed_string name;
     meta_data_node * const next;
     meta_type_node * const parent;
@@ -100,7 +100,7 @@ struct meta_data_node final {
 };
 
 
-struct meta_func_node final {
+struct meta_func_node {
     using size_type = std::size_t;
     const hashed_string name;
     meta_func_node * const next;
@@ -116,7 +116,7 @@ struct meta_func_node final {
 };
 
 
-struct meta_type_node final {
+struct meta_type_node {
     const hashed_string name;
     meta_type_node * const next;
     meta_prop_node * const prop;
@@ -291,7 +291,7 @@ inline auto ctor(std::index_sequence<Indexes...>, const meta_type_node *node) EN
  * of pointers. This will greatly improve the use of the cache, thus increasing
  * the overall performance.
  */
-class meta_any final {
+class meta_any {
     /*! @brief A meta handle is allowed to _inherit_ from a meta any. */
     friend class meta_handle;
 
@@ -603,7 +603,7 @@ private:
  * responsible for ensuring that the target object remains alive for the entire
  * interval of use of the handle.
  */
-class meta_handle final {
+class meta_handle {
     meta_handle(int, meta_any &any) ENTT_NOEXCEPT
         : node{any.node},
           instance{any.instance}
@@ -722,7 +722,7 @@ inline bool operator!=(const meta_any &lhs, const meta_any &rhs) ENTT_NOEXCEPT {
  * A meta property is an opaque container for a key/value pair.<br/>
  * Properties are associated with any other meta object to enrich it.
  */
-class meta_prop final {
+class meta_prop {
     /*! @brief A meta factory is allowed to create meta objects. */
     template<typename> friend class meta_factory;
 
@@ -792,7 +792,7 @@ inline bool operator!=(const meta_prop &lhs, const meta_prop &rhs) ENTT_NOEXCEPT
  * A meta base is an opaque container for a base class to be used to walk
  * through hierarchies.
  */
-class meta_base final {
+class meta_base {
     /*! @brief A meta factory is allowed to create meta objects. */
     template<typename> friend class meta_factory;
 
@@ -867,7 +867,7 @@ inline bool operator!=(const meta_base &lhs, const meta_base &rhs) ENTT_NOEXCEPT
  * A meta conversion function is an opaque container for a conversion function
  * to be used to convert a given instance to another type.
  */
-class meta_conv final {
+class meta_conv {
     /*! @brief A meta factory is allowed to create meta objects. */
     template<typename> friend class meta_factory;
 
@@ -942,7 +942,7 @@ inline bool operator!=(const meta_conv &lhs, const meta_conv &rhs) ENTT_NOEXCEPT
  * A meta constructor is an opaque container for a function to be used to
  * construct instances of a given type.
  */
-class meta_ctor final {
+class meta_ctor {
     /*! @brief A meta factory is allowed to create meta objects. */
     template<typename> friend class meta_factory;
 
@@ -1072,7 +1072,7 @@ inline bool operator!=(const meta_ctor &lhs, const meta_ctor &rhs) ENTT_NOEXCEPT
  * A meta destructor is an opaque container for a function to be used to
  * destroy instances of a given type.
  */
-class meta_dtor final {
+class meta_dtor {
     /*! @brief A meta factory is allowed to create meta objects. */
     template<typename> friend class meta_factory;
 
@@ -1146,7 +1146,7 @@ inline bool operator!=(const meta_dtor &lhs, const meta_dtor &rhs) ENTT_NOEXCEPT
  * A meta data is an opaque container for a data member associated with a given
  * type.
  */
-class meta_data final {
+class meta_data {
     /*! @brief A meta factory is allowed to create meta objects. */
     template<typename> friend class meta_factory;
 
@@ -1303,7 +1303,7 @@ inline bool operator!=(const meta_data &lhs, const meta_data &rhs) ENTT_NOEXCEPT
  * A meta function is an opaque container for a member function associated with
  * a given type.
  */
-class meta_func final {
+class meta_func {
     /*! @brief A meta factory is allowed to create meta objects. */
     template<typename> friend class meta_factory;
 
@@ -1471,7 +1471,7 @@ inline bool operator!=(const meta_func &lhs, const meta_func &rhs) ENTT_NOEXCEPT
  * A meta type is the starting point for accessing a reflected type, thus being
  * able to work through it on real objects.
  */
-class meta_type final {
+class meta_type {
     /*! @brief A meta factory is allowed to create meta objects. */
     template<typename> friend class meta_factory;
 

+ 3 - 3
src/entt/process/scheduler.hpp

@@ -42,8 +42,8 @@ namespace entt {
  * @tparam Delta Type to use to provide elapsed time.
  */
 template<typename Delta>
-class scheduler final {
-    struct process_handler final {
+class scheduler {
+    struct process_handler {
         using instance_type = std::unique_ptr<void, void(*)(void *)>;
         using update_fn_type = bool(process_handler &, Delta, void *);
         using abort_fn_type = void(process_handler &, bool);
@@ -55,7 +55,7 @@ class scheduler final {
         next_type next;
     };
 
-    struct continuation final {
+    struct continuation {
         continuation(process_handler *handler)
             : handler{handler}
         {

+ 1 - 1
src/entt/resource/handle.hpp

@@ -28,7 +28,7 @@ class resource_cache;
  * @tparam Resource Type of resource managed by a handle.
  */
 template<typename Resource>
-class resource_handle final {
+class resource_handle {
     /*! @brief Resource handles are friends of their caches. */
     friend class resource_cache<Resource>;