Raven Engine v0.1
Loading...
Searching...
No Matches
Concepts.h File Reference

Provides various type concepts for the Raven engine. More...

#include <type_traits>
#include <concepts>
#include <ostream>

Namespaces

namespace  Raven

Concepts

concept  Raven::DerivedFrom
 Concept to check if T is derived from Base.
concept  Raven::RTApp
 Concept to check if T is a Raven application type.
concept  Raven::POD
 Concept to check if T is a Plain Old Data (POD) type.
concept  Raven::Invocable
 Concept to check if T is invocable (i.e., can be called with no arguments and return void).
concept  Raven::Arithmetic
 Concept to check if T supports basic arithmetic operations (+, -, *, /).
concept  Raven::Streamable
 Concept to check if T can be streamed to an ostream (i.e., supports '<<' operator).
concept  Raven::Iterable
 Concept to check if T is iterable (supports begin() and end()).

Detailed Description

Provides various type concepts for the Raven engine.

Author
PhilikusHD

This file defines several type concepts that are used throughout the Raven engine. These concepts help in constraining template parameters and ensuring that types meet certain criteria, such as being derived from a base class, being POD types, or being invocable.

Typical usage:

  1. Use DerivedFrom to constrain a template parameter to be derived from a specific base class.
  2. Use POD to check if a type is a Plain Old Data (POD) type.
  3. Use Invocable to check if a type can be called with no arguments and returns void.
Note
  • These concepts are designed to be used with C++20 or later.