mn_optional.hpp File Reference
#include "mn_config.hpp"
#include "mn_algorithm.hpp"
#include "mn_functional.hpp"

Go to the source code of this file.

Classes

struct  mn::nullopt_t
 
class  mn::basic_optional< T >
 

Namespaces

 mn
 

Typedefs

template<typename T >
using mn::optional = basic_optional< T >
 

Functions

template<typename T >
void mn::swap (basic_optional< T > &a, basic_optional< T > &b)
 
template<typename T , typename U >
constexpr bool mn::operator== (const basic_optional< T > &x, const basic_optional< U > &y)
 
template<typename T , typename U >
constexpr bool mn::operator!= (const basic_optional< T > &x, const basic_optional< U > &y)
 
template<typename T , typename U >
constexpr bool mn::operator< (const basic_optional< T > &x, const basic_optional< U > &y)
 
template<typename T , typename U >
constexpr bool mn::operator> (const basic_optional< T > &x, const basic_optional< U > &y)
 
template<typename T , typename U >
constexpr bool mn::operator<= (const basic_optional< T > &x, const basic_optional< U > &y)
 
template<typename T , typename U >
constexpr bool mn::operator>= (const basic_optional< T > &x, const basic_optional< U > &y)
 
template<typename T >
constexpr bool mn::operator== (const basic_optional< T > &x, nullopt_t) noexcept
 
template<typename T >
constexpr bool mn::operator== (nullopt_t, const basic_optional< T > &x) noexcept
 
template<typename T >
constexpr bool mn::operator!= (const basic_optional< T > &x, nullopt_t) noexcept
 
template<typename T >
constexpr bool mn::operator!= (nullopt_t, const basic_optional< T > &x) noexcept
 
template<typename T >
constexpr bool mn::operator< (const basic_optional< T > &, nullopt_t) noexcept
 
template<typename T >
constexpr bool mn::operator< (nullopt_t, const basic_optional< T > &x) noexcept
 
template<typename T >
constexpr bool mn::operator<= (const basic_optional< T > &x, nullopt_t) noexcept
 
template<typename T >
constexpr bool mn::operator<= (nullopt_t, const basic_optional< T > &) noexcept
 
template<typename T >
constexpr bool mn::operator> (const basic_optional< T > &x, nullopt_t) noexcept
 
template<typename T >
constexpr bool mn::operator> (nullopt_t, const basic_optional< T > &) noexcept
 
template<typename T >
constexpr bool mn::operator>= (const basic_optional< T > &, nullopt_t) noexcept
 
template<typename T >
constexpr bool mn::operator>= (nullopt_t, const basic_optional< T > &x) noexcept
 
template<typename T , typename U >
constexpr bool mn::operator== (const basic_optional< T > &x, const U &v)
 
template<typename T , typename U >
constexpr bool mn::operator== (const U &v, const basic_optional< T > &x)
 
template<typename T , typename U >
constexpr bool mn::operator!= (const basic_optional< T > &x, const U &v)
 
template<typename T , typename U >
constexpr bool mn::operator!= (const U &v, const basic_optional< T > &x)
 
template<typename T , typename U >
constexpr bool mn::operator< (const basic_optional< T > &x, const U &v)
 
template<typename T , typename U >
constexpr bool mn::operator< (const U &v, const basic_optional< T > &x)
 
template<typename T , typename U >
constexpr bool mn::operator<= (const basic_optional< T > &x, const U &v)
 
template<typename T , typename U >
constexpr bool mn::operator<= (const U &v, const basic_optional< T > &x)
 
template<typename T , typename U >
constexpr bool mn::operator> (const basic_optional< T > &x, const U &v)
 
template<typename T , typename U >
constexpr bool mn::operator> (const U &v, const basic_optional< T > &x)
 
template<typename T , typename U >
constexpr bool mn::operator>= (const basic_optional< T > &x, const U &v)
 
template<typename T , typename U >
constexpr bool mn::operator>= (const U &v, const basic_optional< T > &x)
 
template<typename T >
constexpr basic_optional< typename mn::decay< T >::type > mn::make_optional (T &&value)
 
template<typename T , typename... Args>
constexpr basic_optional< T > mn::make_optional (Args &&... args)
 

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::nullopt_t

struct mn::nullopt_t