Single (uninitialized) object with specialization for void type. More...
#include <LazyObject.h>
Classes | |
| union | Data |
| struct | size_of |
Public Types | |
| typedef T | value_type |
| typedef T & | reference |
| typedef const T & | const_reference |
Public Member Functions | |
| void | destroy () |
| void | construct (const_reference x) |
| template<typename... Args> | |
| void | construct (Args &&...args) |
| const_reference | get () const |
| reference | get () |
Static Public Attributes | |
| static const bool | has_value = true |
Private Types | |
| typedef std::aligned_storage < sizeof(T), std::alignment_of < T >::value >::type | CharData |
Private Member Functions | |
| T * | cast () |
| const T * | cast () const |
Private Attributes | |
| Data | data_ |
Single (uninitialized) object with specialization for void type.
To take advantage of empty member optimization, users should subclass this class, otherwise the compiler will insert non-zero padding for fields (even when empty).
typedef std::aligned_storage<sizeof(T), std::alignment_of<T>::value>::type Galois::LazyObject< T >::CharData [private] |
| typedef const T& Galois::LazyObject< T >::const_reference |
| typedef T& Galois::LazyObject< T >::reference |
| typedef T Galois::LazyObject< T >::value_type |
| const T* Galois::LazyObject< T >::cast | ( | ) | const [inline, private] |
| T* Galois::LazyObject< T >::cast | ( | ) | [inline, private] |
| void Galois::LazyObject< T >::construct | ( | Args &&... | args | ) | [inline] |
| void Galois::LazyObject< T >::construct | ( | const_reference | x | ) | [inline] |
| void Galois::LazyObject< T >::destroy | ( | ) | [inline] |
| reference Galois::LazyObject< T >::get | ( | ) | [inline] |
| const_reference Galois::LazyObject< T >::get | ( | ) | const [inline] |
Data Galois::LazyObject< T >::data_ [private] |
const bool Galois::LazyObject< T >::has_value = true [static] |
1.6.1