NimbleSM
NimbleSM is a solid mechanics simulation code for dynamic systems
Loading...
Searching...
No Matches
nimble.quanta.h File Reference

Go to the source code of this file.

Classes

struct  nimble::quanta::indexer_t< list_t >
 
struct  nimble::quanta::indexer_t< T * >
 
class  nimble::quanta::invoke_counter_t< int_t >
 

Namespaces

namespace  nimble
 
namespace  nimble::quanta
 

Typedefs

template<class list_t>
using nimble::quanta::iterated_t = decltype(*std::begin(declref<list_t>()))
 
template<class list_t>
using nimble::quanta::elem_t = typename std::decay<iterated_t<list_t>>::type
 
template<class F, class... Args>
using nimble::quanta::return_t = decltype(declref<F>()(declval_exact<Args>()...))
 
template<class F, class... list_t>
using nimble::quanta::transformed_iterated_t = return_t<F, iterated_t<list_t>...>
 

Functions

template<class T>
nimble::quanta::declval_exact () noexcept
 
template<class T>
std::remove_reference< T >::type & nimble::quanta::declref () noexcept
 
template<class T>
auto nimble::quanta::len (T &&obj) -> decltype(obj.size())
 
template<class T>
indexer_t< T > nimble::quanta::make_indexer (T &list)
 
template<class T>
indexer_t< T * > nimble::quanta::make_indexer (T *ptr)
 
template<class int_t>
invoke_counter_t< int_t > nimble::quanta::make_counter (int_t initial=0)
 
template<class list_t, class F>
void nimble::quanta::remap (list_t &list, F &&func)