Krita Source Code Documentation
Loading...
Searching...
No Matches
kismpl::detail::fold_optional_impl< Fun, T > Struct Template Reference

#include <KisMpl.h>

Public Member Functions

std::optional< T > fold (const std::optional< T > &first)
 
std::optional< T > fold (const std::optional< T > &first, const std::optional< T > &second)
 
template<typename... Rest>
std::optional< T > fold (const std::optional< T > &first, std::optional< T > const &second, const std::optional< Rest > &...rest)
 

Public Attributes

const Fun m_fun
 

Detailed Description

template<typename Fun, typename T>
struct kismpl::detail::fold_optional_impl< Fun, T >

Definition at line 105 of file KisMpl.h.

Member Function Documentation

◆ fold() [1/3]

template<typename Fun , typename T >
std::optional< T > kismpl::detail::fold_optional_impl< Fun, T >::fold ( const std::optional< T > & first)
inline

Definition at line 106 of file KisMpl.h.

106 {
107 return first;
108 }

◆ fold() [2/3]

template<typename Fun , typename T >
std::optional< T > kismpl::detail::fold_optional_impl< Fun, T >::fold ( const std::optional< T > & first,
const std::optional< T > & second )
inline

Definition at line 110 of file KisMpl.h.

110 {
111 if (first && second) {
112 return m_fun(*first, *second);
113 } else if (first) {
114 return first;
115 } else {
116 return second;
117 }
118 }

References kismpl::detail::fold_optional_impl< Fun, T >::m_fun.

◆ fold() [3/3]

template<typename Fun , typename T >
template<typename... Rest>
std::optional< T > kismpl::detail::fold_optional_impl< Fun, T >::fold ( const std::optional< T > & first,
std::optional< T > const & second,
const std::optional< Rest > &... rest )
inline

Definition at line 121 of file KisMpl.h.

121 {
122 return fold(fold(first, second), rest...);
123 }
std::optional< T > fold(const std::optional< T > &first)
Definition KisMpl.h:106

References kismpl::detail::fold_optional_impl< Fun, T >::fold().

Member Data Documentation

◆ m_fun

template<typename Fun , typename T >
const Fun kismpl::detail::fold_optional_impl< Fun, T >::m_fun

Definition at line 125 of file KisMpl.h.


The documentation for this struct was generated from the following file: