mn_functional.hpp File Reference
#include "mn_config.hpp"
#include "mn_defines.hpp"
#include "mn_def.hpp"
#include "mn_typetraits.hpp"

Go to the source code of this file.

Classes

struct  mn::tag< T >
 
struct  mn::conditional< B, T, F >
 
struct  mn::conditional< false, T, F >
 
struct  mn::bit_or<>
 
struct  mn::bit_or< A >
 
struct  mn::bit_or< A, B >
 
struct  mn::bit_or< A, B, C, N... >
 
struct  mn::remove_reference< T >
 
struct  mn::remove_reference< T & >
 
struct  mn::remove_const< T >
 
struct  mn::remove_const< T const >
 
struct  mn::remove_volatile< T >
 
struct  mn::remove_volatile< T volatile >
 
struct  mn::remove_cv< T >
 
struct  mn::remove_cvref< T >
 
struct  mn::add_const< T >
 
struct  mn::add_volatile< T >
 
struct  mn::add_cv< T >
 
struct  mn::add_reference< T >
 
struct  mn::add_pointer< T >
 
struct  mn::add_lvalue_reference< T >
 
struct  mn::add_rvalue_reference< T >
 
struct  mn::decay3< T >
 
struct  mn::decay3< R(Args...)>
 
struct  mn::decay2< T >
 
struct  mn::decay2< T[N]>
 
struct  mn::decay< T >
 
struct  mn::internal::can_apply< Z, typename, Ts >
 
struct  mn::internal::can_apply< Z, void_t< Z< Ts... > >, Ts... >
 
struct  mn::internal::res_of< Sig, class >
 
struct  mn::internal::res_of< G(Args...), void_t< invoke_t< G, Args... > > >
 
struct  mn::is_convertible< From, To >
 
struct  mn::is_convertible< void, void >
 
struct  mn::enable_if< bool, class >
 
struct  mn::enable_if< true, T >
 
struct  mn::is_same< A, B >
 
struct  mn::is_same< A, A >
 
struct  mn::is_base_of< TBase, TDerived >
 
struct  mn::logic_and< T >
 
struct  mn::logic_or< T >
 
struct  mn::logic_not< T >
 
struct  mn::sqrt< VAL, X >
 
struct  mn::factorial< N >
 Calculates the Nth factorial value. More...
 
struct  mn::factorial< 0 >
 Calculates the 0 factorial value. More...
 
struct  mn::fibonacci< N >
 Calculates the Nth Fibonacci value. More...
 
struct  mn::fibonacci< 0 >
 Calculates the 0 Fibonacci value. More...
 
struct  mn::fibonacci< 1 >
 Calculates the 1 Fibonacci value. More...
 

Namespaces

 mn
 
 mn::internal
 

Typedefs

using nullptr_t = decltype(nullptr)
 
template<typename Tag >
using mn::type_t = typename Tag::type
 
template<typename T >
using mn::remove_reference_t = type_t< remove_reference< T > >
 
template<typename T >
using mn::decay_t = type_t< decay< T > >
 
template<typename From , typename To >
using mn::internal::try_convert = decltype(To{declval< From >()})
 
template<class G , class... Args>
using mn::internal::invoke_t = decltype(declval< G >()(declval< Args >()...))
 
template<template< typename... > typename Z, typename... Ts>
using mn::can_apply = internal::can_apply< Z, void, Ts... >
 
template<bool b, class T = void>
using mn::enable_if_t = type_t< enable_if< b, T > >
 
template<class Sig >
using mn::res_of = internal::res_of< Sig >
 
template<class Sig >
using mn::result_of = internal::res_of< Sig >
 
template<class Sig >
using mn::res_of_t = type_t< res_of< Sig > >
 
template<class Sig >
using mn::result_of_t = internal::res_of< Sig >
 

Functions

template<typename T >
T && mn::move (T &t)
 
template<typename T >
T && mn::forward (remove_reference_t< T > &t)
 
template<typename T >
T && mn::forward (remove_reference_t< T > &&t)
 
template<typename T >
mn::declval ()
 

Detailed Description

This file is part of the Mini Thread Library (https://github.com/RoseLeBlood/MiniThread ).

Author
Copyright (c) 2021 Amber-Sophia Schroeck
License
The Mini Thread Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, version 3, or (at your option) any later version.

The Mini Thread Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with the Mini Thread Library; if not, see https://www.gnu.org/licenses/.


Class Documentation

◆ mn::conditional

struct mn::conditional

template<bool B, typename T, typename F>
struct mn::conditional< B, T, F >

Class Members
typedef T type

◆ mn::conditional< false, T, F >

struct mn::conditional< false, T, F >

template<typename T, typename F>
struct mn::conditional< false, T, F >

Class Members
typedef F type

◆ mn::add_cv

struct mn::add_cv

template<class T>
struct mn::add_cv< T >

Class Members
typedef const volatile typename remove_reference< T >::type type

◆ mn::add_reference

struct mn::add_reference

template<typename T>
struct mn::add_reference< T >

Class Members
typedef typename remove_reference< T >::type & type

◆ mn::add_pointer

struct mn::add_pointer

template<class T>
struct mn::add_pointer< T >

Class Members
typedef typename remove_reference< T >::type * type

◆ mn::internal::res_of

struct mn::internal::res_of

template<class Sig, class = void>
struct mn::internal::res_of< Sig, class >

◆ mn::enable_if

struct mn::enable_if

template<bool, class = void>
struct mn::enable_if< bool, class >

Typedef Documentation

◆ nullptr_t

using nullptr_t = decltype(nullptr)