96template <
typename T,
typename custom =
void>
99 static_assert(std::is_trivial<T>::value && std::is_standard_layout<T>::value,
100 "hila::global<> expects only pod-type elements (plain old data): default "
101 "constructor, copy and delete");
107 void copy_to_device()
const {}
112 const T &get()
const {
116 const T &operator()()
const {
120 template <typename S, std::enable_if_t<hila::is_assignable<T &, S>::value,
int> = 0>
121 void set(
const S &rhs) {
122 assert(hila::is_initialized &&
"Assign to global possible only after hila::initialize()");
131 template <typename S, std::enable_if_t<hila::is_assignable<T &, S>::value,
int> = 0>
132 void operator=(
const S &rhs) {
Global variable class within hila namespace.
Implement hila::swap for gauge fields.