|
static <%= @out_type %> get_<%= @name %>(const <%= class_name %>& alter) {
|
|
auto ptr = (char*)&alter;
|
|
ptr+=<%= @start %>;
|
|
return <%= @mask %> & *(<%= @out_type %>*)ptr;
|
|
}
|
|
|
|
static void set_<%= @name %>(<%= class_name %>& alter) {
|
|
auto ptr = (char*)&alter;
|
|
ptr+=<%= @start %>;
|
|
*(<%= @out_type %>*)ptr = <%= @mask %> | *(<%= @out_type %>*)ptr;
|
|
}
|
|
|
|
static void unset_<%= @name %>(<%= class_name %>& alter) {
|
|
auto ptr = (char*)&alter;
|
|
ptr+=<%= @start %>;
|
|
*(<%= @out_type %>*)ptr = (<%= @mask %> | *(<%= @out_type %>*)ptr) ^ <%= @mask %>;
|
|
}
|
|
|
|
static constexpr size_t <%= @name %>_position() {
|
|
return <%= @start %>;
|
|
}
|
|
|
|
static constexpr size_t <%= @name %>_end_position() {
|
|
return <%= @start %>+sizeof(<%= @out_type %>);
|
|
}
|