|
@@ -894,11 +894,26 @@ struct meta_data {
|
|
|
return (node != nullptr);
|
|
return (node != nullptr);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /*! @copydoc meta_prop::operator== */
|
|
|
|
|
+ [[nodiscard]] bool operator==(const meta_data &other) const noexcept {
|
|
|
|
|
+ return (ctx == other.ctx && node == other.node);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private:
|
|
private:
|
|
|
const internal::meta_data_node *node;
|
|
const internal::meta_data_node *node;
|
|
|
const meta_ctx *ctx;
|
|
const meta_ctx *ctx;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+/**
|
|
|
|
|
+ * @brief Checks if two objects refer to the same type.
|
|
|
|
|
+ * @param lhs An object, either valid or not.
|
|
|
|
|
+ * @param rhs An object, either valid or not.
|
|
|
|
|
+ * @return False if the objects refer to the same node, true otherwise.
|
|
|
|
|
+ */
|
|
|
|
|
+[[nodiscard]] inline bool operator!=(const meta_data &lhs, const meta_data &rhs) noexcept {
|
|
|
|
|
+ return !(lhs == rhs);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
/*! @brief Opaque wrapper for member functions. */
|
|
/*! @brief Opaque wrapper for member functions. */
|
|
|
struct meta_func {
|
|
struct meta_func {
|
|
|
/*! @brief Unsigned integer type. */
|
|
/*! @brief Unsigned integer type. */
|