Go to the documentation of this file.
9 #ifndef EAGINE_INTERFACE_HPP
10 #define EAGINE_INTERFACE_HPP
17 template <
typename Derived>
41 template <
typename Derived>
45 constexpr
abstract() noexcept =
default;
48 constexpr
abstract(
abstract&&) noexcept =
default;
51 constexpr
abstract(
const abstract&) noexcept =
default;
54 auto operator=(
abstract&&) noexcept ->
abstract& =
default;
57 auto operator=(
const abstract&) noexcept ->
abstract& =
default;
58 virtual ~
abstract() noexcept =
default;
63 #endif // EAGINE_INTERFACE_HPP
Common code is placed in this namespace.
Definition: eagine.hpp:21
auto operator=(abstract &&) noexcept -> abstract &=default
Move assignable by derived.
Base template for abstract interfaces, implements common functionality.
Definition: interface.hpp:18
Base template for polymorphic classes, implements common functionality.
Definition: interface.hpp:42
constexpr interface() noexcept=default
Default constructible by derived.
auto operator=(interface &&)=delete
Not move assignable.