tlds
Transactional Operations for Linked Data Structures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
stm::iccsync::SYNC< T, W, N > Struct Template Reference

#include <icc-sync.hpp>

Collaboration diagram for stm::iccsync::SYNC< T, W, N >:

Detailed Description

template<typename T, size_t W = sizeof(void*), size_t N = sizeof(T)>
struct stm::iccsync::SYNC< T, W, N >

Our partial specialization helper is parameterized based on the type (T), the number of bytes in the type (N), and if this is a subword, word or double-word access (W). We assume that all addresses are aligned.

T is necessary so that the caller doesn't need to perform any casts.

N is necessary because our implementation depends on the number of bytes.

W allows us to deduce the platform without ifdefing anything.

NB: We've only implemented partial templates for what we actually use. Extending this is straightforward.


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