diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9f1439769..38d7ac30b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,8 +38,8 @@ message(VERBOSE "*")
# Compiler stuff
#
-option(ENTT_USE_LIBCPP "Use libc++ by adding -stdlib=libc++ flag if availbale." OFF)
-option(ENTT_USE_SANITIZER "Enable sanitizers by adding -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined flags if availbale." OFF)
+option(ENTT_USE_LIBCPP "Use libc++ by adding -stdlib=libc++ flag if available." OFF)
+option(ENTT_USE_SANITIZER "Enable sanitizers by adding -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined flags if available." OFF)
if(ENTT_USE_LIBCPP)
if(NOT WIN32)
diff --git a/docs/md/entity.md b/docs/md/entity.md
index 85ac2fc91..f315a14ca 100644
--- a/docs/md/entity.md
+++ b/docs/md/entity.md
@@ -111,7 +111,7 @@ Even worse, some approaches tend to heavily affect other functionalities like
the construction and destruction of components to favor iterations, even when it
isn't strictly required. In fact, slightly worse performance along non-critical
paths are the right price to pay to reduce memory usage and have overall better
-perfomance.
+performance.
`EnTT` follows a completely different approach. It gets the best out from the
basic data structures and gives users the possibility to pay more for higher
performance where needed.
@@ -530,7 +530,7 @@ the observer, no matter if they matched the given rule.
In the example above, whenever the component `sprite` of an entity is updated,
the observer probes the entity itself to verify that it has at least `position`
and has not `velocity` before to store it aside. If one of the two conditions of
-the filter isn't respected, the entity is discared, no matter what.
+the filter isn't respected, the entity is discarded, no matter what.
A `where` clause accepts a theoretically unlimited number of types as well as
multiple elements in the exclusion list. Moreover, every matcher can have its
@@ -932,7 +932,7 @@ registry.ctx().emplace(clock);
From the point of view of the user, there are no differences between a variable
that is managed by the registry and an aliased property. However, read-only
-variables aren't accesible as non-const references:
+variables aren't accessible as non-const references:
```cpp
// read-only variables only support const access
@@ -1813,7 +1813,7 @@ also called _nested groups_, such as:
Fortunately, these are also very common cases if not the most common ones.
It allows to increase performance on a greater number of component combinations.
-Two nested groups are such that they own at least one componet type and the list
+Two nested groups are such that they own at least one component type and the list
of component types involved by one of them is contained entirely in that of the
other. More specifically, this applies independently to all component lists used
to define a group.
@@ -2062,7 +2062,7 @@ groups or as free types with multi type views and groups in general.
# Empty type optimization
An empty type `T` is such that `std::is_empty_v` returns true. They are also
-the same types for which _empty base optimization_ (EBO) is possibile.
+the same types for which _empty base optimization_ (EBO) is possible.
`EnTT` handles these types in a special way, optimizing both in terms of
performance and memory usage. However, this also has consequences that are worth
mentioning.
diff --git a/docs/md/meta.md b/docs/md/meta.md
index 4a9a97677..f50e70f74 100644
--- a/docs/md/meta.md
+++ b/docs/md/meta.md
@@ -416,7 +416,7 @@ to case. In particular:
```
* The `resize` member function allows to resize the wrapped container and
- returns true in case of succes:
+ returns true in case of success:
```cpp
const bool ok = view.resize(3u);
diff --git a/docs/md/poly.md b/docs/md/poly.md
index 3eda5a098..c87804e14 100644
--- a/docs/md/poly.md
+++ b/docs/md/poly.md
@@ -10,7 +10,7 @@
* [Concept and implementation](#concept-and-implementation)
* [Deduced interface](#deduced-interface)
* [Defined interface](#defined-interface)
- * [Fullfill a concept](#fullfill-a-concept)
+ * [Fulfill a concept](#fulfill-a-concept)
* [Inheritance](#inheritance)
* [Static polymorphism in the wild](#static-polymorphism-in-the-wild)
* [Storage size and alignment requirement](#storage-size-and-alignment-requirement)
@@ -24,8 +24,8 @@ Static polymorphism is a very powerful tool in C++, albeit sometimes cumbersome
to obtain.
This module aims to make it simple and easy to use.
-The library allows to define _concepts_ as interfaces to fullfill with concrete
-classes withouth having to inherit from a common base.
+The library allows to define _concepts_ as interfaces to fulfill with concrete
+classes without having to inherit from a common base.
This is, among others, one of the advantages of static polymorphism in general
and of a generic wrapper like that offered by the `poly` class template in
particular.
@@ -74,7 +74,7 @@ limitations and it's therefore useful to be able to get around the deduction by
providing a custom definition for the static virtual table.
Once the interface is defined, it will be sufficient to provide a generic
-implementation to fullfill the concept.
+implementation to fulfill the concept.
Also in this case, the library allows customizations based on types or families
of types, so as to be able to go beyond the generic case where necessary.
@@ -94,7 +94,7 @@ struct Drawable: entt::type_list<> {
```
It's recognizable by the fact that it inherits from an empty type list.
-Functions can also be const, accept any number of paramters and return a type
+Functions can also be const, accept any number of parameters and return a type
other than `void`:
```cpp
@@ -187,7 +187,7 @@ the interface itself.
Explicitly defining a static virtual table suppresses the deduction step and
allows maximum flexibility when providing the implementation for a concept.
-## Fullfill a concept
+## Fulfill a concept
The `impl` alias template of a concept is used to define how it's fulfilled:
@@ -202,7 +202,7 @@ struct Drawable: entt::type_list<> {
In this case, it's stated that the `draw` method of a generic type will be
enough to satisfy the requirements of the `Drawable` concept.
-Both member functions and free functions are supported to fullfill concepts:
+Both member functions and free functions are supported to fulfill concepts:
```cpp
template
diff --git a/src/entt/core/hashed_string.hpp b/src/entt/core/hashed_string.hpp
index 5209672a8..2d9c8cc27 100644
--- a/src/entt/core/hashed_string.hpp
+++ b/src/entt/core/hashed_string.hpp
@@ -54,7 +54,7 @@ struct basic_hashed_string {
* @brief Zero overhead unique identifier.
*
* A hashed string is a compile-time tool that allows users to use
- * human-readable identifers in the codebase while using their numeric
+ * human-readable identifiers in the codebase while using their numeric
* counterparts at runtime.
* Because of that, a hashed string can also be used in constant expressions if
* required.
@@ -108,7 +108,7 @@ public:
/**
* @brief Returns directly the numeric representation of a string view.
- * @param str Human-readable identifer.
+ * @param str Human-readable identifier.
* @param len Length of the string to hash.
* @return The numeric representation of the string.
*/
@@ -119,7 +119,7 @@ public:
/**
* @brief Returns directly the numeric representation of a string.
* @tparam N Number of characters of the identifier.
- * @param str Human-readable identifer.
+ * @param str Human-readable identifier.
* @return The numeric representation of the string.
*/
template
@@ -142,7 +142,7 @@ public:
/**
* @brief Constructs a hashed string from a string view.
- * @param str Human-readable identifer.
+ * @param str Human-readable identifier.
* @param len Length of the string to hash.
*/
constexpr basic_hashed_string(const value_type *str, const size_type len) ENTT_NOEXCEPT
@@ -151,7 +151,7 @@ public:
/**
* @brief Constructs a hashed string from an array of const characters.
* @tparam N Number of characters of the identifier.
- * @param str Human-readable identifer.
+ * @param str Human-readable identifier.
*/
template
constexpr basic_hashed_string(const value_type (&str)[N]) ENTT_NOEXCEPT
@@ -210,7 +210,7 @@ public:
/**
* @brief Deduction guide.
* @tparam Char Character type.
- * @param str Human-readable identifer.
+ * @param str Human-readable identifier.
* @param len Length of the string to hash.
*/
template
@@ -220,7 +220,7 @@ basic_hashed_string(const Char *str, const std::size_t len) -> basic_hashed_stri
* @brief Deduction guide.
* @tparam Char Character type.
* @tparam N Number of characters of the identifier.
- * @param str Human-readable identifer.
+ * @param str Human-readable identifier.
*/
template
basic_hashed_string(const Char (&str)[N]) -> basic_hashed_string;
diff --git a/src/entt/entity/entity.hpp b/src/entt/entity/entity.hpp
index 8f6e5c60e..330d057b4 100644
--- a/src/entt/entity/entity.hpp
+++ b/src/entt/entity/entity.hpp
@@ -320,7 +320,7 @@ template
* @brief Compile-time constant for null entities.
*
* There exist implicit conversions from this variable to identifiers of any
- * allowed type. Similarly, there exist comparision operators between the null
+ * allowed type. Similarly, there exist comparison operators between the null
* entity and any other identifier.
*/
inline constexpr null_t null{};
@@ -329,7 +329,7 @@ inline constexpr null_t null{};
* @brief Compile-time constant for tombstone entities.
*
* There exist implicit conversions from this variable to identifiers of any
- * allowed type. Similarly, there exist comparision operators between the
+ * allowed type. Similarly, there exist comparison operators between the
* tombstone entity and any other identifier.
*/
inline constexpr tombstone_t tombstone{};
diff --git a/src/entt/entity/organizer.hpp b/src/entt/entity/organizer.hpp
index 0e2dfa18f..9421401a1 100644
--- a/src/entt/entity/organizer.hpp
+++ b/src/entt/entity/organizer.hpp
@@ -163,7 +163,7 @@ class basic_organizer final {
const auto length = vertices.size();
std::vector edges(length * length, false);
- // creates the ajacency matrix
+ // creates the adjacency matrix
for(const auto &deps: dependencies) {
const auto last = deps.second.cend();
auto it = deps.second.cbegin();
diff --git a/src/entt/meta/factory.hpp b/src/entt/meta/factory.hpp
index 0bf0d99e5..95928aa83 100644
--- a/src/entt/meta/factory.hpp
+++ b/src/entt/meta/factory.hpp
@@ -528,7 +528,7 @@ public:
}
/**
- * @brief Assigns a meta funcion to a meta type.
+ * @brief Assigns a meta function to a meta type.
*
* Both member functions and free functions can be assigned to a meta
* type.
diff --git a/test/entt/container/dense_map.cpp b/test/entt/container/dense_map.cpp
index 9918a5ee7..89eaa5396 100644
--- a/test/entt/container/dense_map.cpp
+++ b/test/entt/container/dense_map.cpp
@@ -86,7 +86,7 @@ TEST(DenseMap, Functionalities) {
ASSERT_FALSE(map.contains(0u));
}
-TEST(DenseMap, Contructors) {
+TEST(DenseMap, Constructors) {
static constexpr std::size_t minimum_bucket_count = 8u;
entt::dense_map map;
diff --git a/test/entt/container/dense_set.cpp b/test/entt/container/dense_set.cpp
index b7ac6dfdf..5594760db 100644
--- a/test/entt/container/dense_set.cpp
+++ b/test/entt/container/dense_set.cpp
@@ -86,7 +86,7 @@ TEST(DenseSet, Functionalities) {
ASSERT_FALSE(set.contains(0u));
}
-TEST(DenseSet, Contructors) {
+TEST(DenseSet, Constructors) {
static constexpr std::size_t minimum_bucket_count = 8u;
entt::dense_set set;