memlayout
Minimal CPU/GPU header-only example library
Loading...
Searching...
No Matches
memlayout::Wrapper< Struct, pointer, Layout::soa > Struct Template Reference

#include <wrapper.h>

Inheritance diagram for memlayout::Wrapper< Struct, pointer, Layout::soa >:

Public Types

using Base = Struct<pointer>

Public Member Functions

constexpr Wrapper ()=default
constexpr Wrapper (Base b)
constexpr Wrapper< Struct, referenceoperator[] (size_t i)
constexpr const Wrapper< Struct, const_referenceoperator[] (size_t i) const
constexpr Wrapper< Struct, referenceoperator* ()
constexpr Wrapper< Struct, const_referenceoperator* () const
constexpr Wrapper< Struct, referenceoperator-> ()
constexpr Wrapper< Struct, const_referenceoperator-> () const
constexpr bool operator== (const Wrapper &other) const
constexpr bool operator!= (const Wrapper &other) const
constexpr bool operator< (const Wrapper &other) const
constexpr Wrapper operator+ (ptrdiff_t i) const
constexpr Wrapper operator- (ptrdiff_t i) const
constexpr ptrdiff_t operator- (const Wrapper &other) const
constexpr Wrapperoperator++ ()
constexpr Wrapperoperator+= (ptrdiff_t i)
constexpr Wrapperoperator-- ()
constexpr Wrapperoperator-= (ptrdiff_t i)

Detailed Description

template<template< template< class > class > class Struct>
struct memlayout::Wrapper< Struct, pointer, Layout::soa >

Definition at line 209 of file wrapper.h.

Member Typedef Documentation

◆ Base

template<template< template< class > class > class Struct>
using memlayout::Wrapper< Struct, pointer, Layout::soa >::Base = Struct<pointer>

Definition at line 210 of file wrapper.h.

Constructor & Destructor Documentation

◆ Wrapper() [1/2]

template<template< template< class > class > class Struct>
memlayout::Wrapper< Struct, pointer, Layout::soa >::Wrapper ( )
constexprdefault

◆ Wrapper() [2/2]

template<template< template< class > class > class Struct>
memlayout::Wrapper< Struct, pointer, Layout::soa >::Wrapper ( Base b)
inlineconstexpr

Definition at line 213 of file wrapper.h.

213: Base{static_cast<Base&&>(b)} {}

Member Function Documentation

◆ operator!=()

template<template< template< class > class > class Struct>
bool memlayout::Wrapper< Struct, pointer, Layout::soa >::operator!= ( const Wrapper< Struct, pointer, Layout::soa > & other) const
inlineconstexpr

Definition at line 224 of file wrapper.h.

224{ return !this->operator==(other); }
constexpr bool operator==(const Wrapper &other) const
Definition wrapper.h:223

◆ operator*() [1/2]

template<template< template< class > class > class Struct>
Wrapper< Struct, reference > memlayout::Wrapper< Struct, pointer, Layout::soa >::operator* ( )
inlineconstexpr

Definition at line 218 of file wrapper.h.

218{ return operator[](0); }
constexpr Wrapper< Struct, reference > operator[](size_t i)
Definition wrapper.h:215

◆ operator*() [2/2]

template<template< template< class > class > class Struct>
Wrapper< Struct, const_reference > memlayout::Wrapper< Struct, pointer, Layout::soa >::operator* ( ) const
inlineconstexpr

Definition at line 219 of file wrapper.h.

219{ return operator[](0); }

◆ operator+()

template<template< template< class > class > class Struct>
Wrapper memlayout::Wrapper< Struct, pointer, Layout::soa >::operator+ ( ptrdiff_t i) const
inlineconstexpr

Definition at line 227 of file wrapper.h.

227{ return Base::apply(Advance<Base>{i}); }

◆ operator++()

template<template< template< class > class > class Struct>
Wrapper & memlayout::Wrapper< Struct, pointer, Layout::soa >::operator++ ( )
inlineconstexpr

Definition at line 231 of file wrapper.h.

231{ Base::apply(PreIncrement<Base>{}); return *this; }

◆ operator+=()

template<template< template< class > class > class Struct>
Wrapper & memlayout::Wrapper< Struct, pointer, Layout::soa >::operator+= ( ptrdiff_t i)
inlineconstexpr

Definition at line 232 of file wrapper.h.

232{ return *this = *this + i; }

◆ operator-() [1/2]

template<template< template< class > class > class Struct>
ptrdiff_t memlayout::Wrapper< Struct, pointer, Layout::soa >::operator- ( const Wrapper< Struct, pointer, Layout::soa > & other) const
inlineconstexpr

Definition at line 229 of file wrapper.h.

229{ return Base::apply(FirstMember{}) - other.apply(FirstMember{}); }

◆ operator-() [2/2]

template<template< template< class > class > class Struct>
Wrapper memlayout::Wrapper< Struct, pointer, Layout::soa >::operator- ( ptrdiff_t i) const
inlineconstexpr

Definition at line 228 of file wrapper.h.

228{ return operator+(-i); }
constexpr Wrapper operator+(ptrdiff_t i) const
Definition wrapper.h:227

◆ operator--()

template<template< template< class > class > class Struct>
Wrapper & memlayout::Wrapper< Struct, pointer, Layout::soa >::operator-- ( )
inlineconstexpr

Definition at line 233 of file wrapper.h.

233{ Base::apply(PreDecrement<Base>{}); return *this; }

◆ operator-=()

template<template< template< class > class > class Struct>
Wrapper & memlayout::Wrapper< Struct, pointer, Layout::soa >::operator-= ( ptrdiff_t i)
inlineconstexpr

Definition at line 234 of file wrapper.h.

234{ return *this = *this - i; }

◆ operator->() [1/2]

template<template< template< class > class > class Struct>
Wrapper< Struct, reference > memlayout::Wrapper< Struct, pointer, Layout::soa >::operator-> ( )
inlineconstexpr

Definition at line 220 of file wrapper.h.

220{ return operator[](0); }

◆ operator->() [2/2]

template<template< template< class > class > class Struct>
Wrapper< Struct, const_reference > memlayout::Wrapper< Struct, pointer, Layout::soa >::operator-> ( ) const
inlineconstexpr

Definition at line 221 of file wrapper.h.

221{ return operator[](0); }

◆ operator<()

template<template< template< class > class > class Struct>
bool memlayout::Wrapper< Struct, pointer, Layout::soa >::operator< ( const Wrapper< Struct, pointer, Layout::soa > & other) const
inlineconstexpr

Definition at line 225 of file wrapper.h.

225{ return Base::apply(FirstMember{}) < other.apply(FirstMember{}); }

◆ operator==()

template<template< template< class > class > class Struct>
bool memlayout::Wrapper< Struct, pointer, Layout::soa >::operator== ( const Wrapper< Struct, pointer, Layout::soa > & other) const
inlineconstexpr

Definition at line 223 of file wrapper.h.

223{ return Base::apply(FirstMember{}) == other.apply(FirstMember{}); }

◆ operator[]() [1/2]

template<template< template< class > class > class Struct>
Wrapper< Struct, reference > memlayout::Wrapper< Struct, pointer, Layout::soa >::operator[] ( size_t i)
inlineconstexpr

Definition at line 215 of file wrapper.h.

◆ operator[]() [2/2]

template<template< template< class > class > class Struct>
const Wrapper< Struct, const_reference > memlayout::Wrapper< Struct, pointer, Layout::soa >::operator[] ( size_t i) const
inlineconstexpr

Definition at line 216 of file wrapper.h.


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