jubilant-funicular
Public Member Functions | List of all members
utils::StrongWrapper< T, TAG > Class Template Reference

#include <Wrapper.h>

Inheritance diagram for utils::StrongWrapper< T, TAG >:
Inheritance graph
[legend]
Collaboration diagram for utils::StrongWrapper< T, TAG >:
Collaboration graph
[legend]

Public Member Functions

 StrongWrapper (T data)
 
- Public Member Functions inherited from utils::Wrapper< T, TAG >
 Wrapper (T data=T())
 
const T & to_inner () const
 
T & to_inner ()
 
 operator T () const
 
template<typename U >
auto operator== (const U &rhs) const -> decltype(std::enable_if_t< check::EqualsExists< T, U >::value, bool >
 
template<typename std::enable_if_t< check::EqualsExists< T >::value > * = nullptr>
bool operator== (const Wrapper &rhs) const
 
template<typename U >
auto operator!= (const U &rhs) const -> decltype(std::enable_if_t< check::EqualsExists< T, U >::value, bool >
 
template<typename std::enable_if_t< check::EqualsExists< T >::value > * = nullptr>
bool operator!= (const Wrapper &rhs) const
 
template<typename U , typename std::enable_if_t< check::AddExists< T, U >::value > * = nullptr>
Wrapper operator+ (const U &rhs) const
 
template<typename U , typename std::enable_if_t< check::AddExists< T, U >::value > * = nullptr>
Wrapperoperator+= (const U &rhs)
 
template<typename U , typename std::enable_if_t< check::SubExists< T, U >::value > * = nullptr>
Wrapper operator- (const U &rhs) const
 
template<typename U , typename std::enable_if_t< check::SubExists< T, U >::value > * = nullptr>
Wrapperoperator-= (const U &rhs)
 
template<typename U , typename std::enable_if_t< check::DivExists< T, U >::value > * = nullptr>
Wrapper operator/ (const U &rhs) const
 
template<typename U , typename std::enable_if_t< check::DivExists< T, U >::value > * = nullptr>
Wrapperoperator/= (const U &rhs)
 
template<typename U , typename std::enable_if_t< check::MulExists< T, U >::value > * = nullptr>
Wrapper operator* (const U &rhs) const
 
template<typename U , typename std::enable_if_t< check::MulExists< T, U >::value > * = nullptr>
Wrapperoperator*= (const U &rhs)
 
template<typename U , typename std::enable_if_t< check::AndExists< T, U >::value > * = nullptr>
Wrapper operator& (const U &rhs) const
 
template<typename U , typename std::enable_if_t< check::AndExists< T, U >::value > * = nullptr>
Wrapperoperator&= (const U &rhs)
 
template<typename U , typename std::enable_if_t< check::OrExists< T, U >::value > * = nullptr>
Wrapper operator| (const U &rhs) const
 
template<typename U , typename std::enable_if_t< check::OrExists< T, U >::value > * = nullptr>
Wrapperoperator|= (const U &rhs)
 
template<typename U , typename std::enable_if_t< check::LShiftExists< T, U >::value > * = nullptr>
Wrapper operator<< (const U &rhs) const
 
template<typename U , typename std::enable_if_t< check::LShiftExists< T, U >::value > * = nullptr>
Wrapperoperator<<= (const U &rhs)
 
template<typename U , typename std::enable_if_t< check::RShiftExists< T, U >::value > * = nullptr>
Wrapper operator>> (const U &rhs) const
 
template<typename U , typename std::enable_if_t< check::RShiftExists< T, U >::value > * = nullptr>
Wrapperoperator>>= (const U &rhs)
 
template<typename U , typename std::enable_if_t< check::ModExists< T, U >::value > * = nullptr>
Wrapper operator% (const U &rhs) const
 
template<typename U , typename std::enable_if_t< check::ModExists< T, U >::value > * = nullptr>
Wrapperoperator%= (const U &rhs)
 
template<typename U , typename std::enable_if_t< check::GreaterExists< T, U >::value > * = nullptr>
bool operator> (const U &rhs) const
 
template<typename U , typename std::enable_if_t< check::GreaterExists< T, U >::value &&check::EqualsExists< T, U >::value > * = nullptr>
bool operator>= (const U &rhs) const
 
template<typename U , typename std::enable_if_t< check::LesserExists< T, U >::value > * = nullptr>
bool operator< (const U &rhs) const
 
template<typename U , typename std::enable_if_t< check::LesserExists< T, U >::value &&check::EqualsExists< T, U >::value > * = nullptr>
bool operator<= (const U &rhs) const
 

Additional Inherited Members

- Public Types inherited from utils::Wrapper< T, TAG >
typedef T inner
 

Detailed Description

template<typename T, typename TAG>
class utils::StrongWrapper< T, TAG >

A generic class for creating wrappers around (non-reference) types

Automatically inherts all operations available to the inner type T. This includes the ability to print it using e.g. cout<<

Must be explicitly constructed.

usage: using Name = utils::StrongWrapper<std::string, struct NameTag>

Definition at line 175 of file Wrapper.h.


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