Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::tagged< Tag, T > Class Template Reference

A small helper type for tying a Tag to an underlying value. More...

#include <aggregate.hpp>

Public Types

using tag_type = Tag
using value_type = T

Public Member Functions

constexpr tagged (value_type value)
constexpr tagged (const tagged &)=default
constexpr tagged (tagged &&)=default
constexpr taggedoperator= (const tagged &)=default
constexpr taggedoperator= (tagged &&)=default
constexpr const value_typeget () const
constexpr value_typeget ()

Public Attributes

value_type value_

Detailed Description

template<typename Tag, typename T>
class mundy::tagged< Tag, T >

TODO(palmerb4): While currently unneeded, we could allow T to be of storage type such that we can support non-owning values within an aggregate (e.g. T could be a pointer or reference wrapper). This isn't that heavy of a change but would require some thought to get the storage semantics right.

Member Typedef Documentation

◆ tag_type

template<typename Tag, typename T>
using mundy::tagged< Tag, T >::tag_type = Tag

◆ value_type

template<typename Tag, typename T>
using mundy::tagged< Tag, T >::value_type = T

Constructor & Destructor Documentation

◆ tagged() [1/3]

template<typename Tag, typename T>
mundy::tagged< Tag, T >::tagged ( value_type value)
inlineconstexpr

◆ tagged() [2/3]

template<typename Tag, typename T>
mundy::tagged< Tag, T >::tagged ( const tagged< Tag, T > & )
constexprdefault

◆ tagged() [3/3]

template<typename Tag, typename T>
mundy::tagged< Tag, T >::tagged ( tagged< Tag, T > && )
constexprdefault

Member Function Documentation

◆ operator=() [1/2]

template<typename Tag, typename T>
tagged & mundy::tagged< Tag, T >::operator= ( const tagged< Tag, T > & )
constexprdefault

◆ operator=() [2/2]

template<typename Tag, typename T>
tagged & mundy::tagged< Tag, T >::operator= ( tagged< Tag, T > && )
constexprdefault

◆ get() [1/2]

template<typename Tag, typename T>
const value_type & mundy::tagged< Tag, T >::get ( ) const
inlineconstexpr

◆ get() [2/2]

template<typename Tag, typename T>
value_type & mundy::tagged< Tag, T >::get ( )
inlineconstexpr

Member Data Documentation

◆ value_

template<typename Tag, typename T>
value_type mundy::tagged< Tag, T >::value_