|
|
-
- class <%= @name %> {
- virtual ~<%= @name %>() = 0;
- public:
- <% if !(@attributes.nil?) %>
- <%- @attributes.not_nil!.each do |attr| -%>
- <%- attr.class_name = @name -%>
- <%-= attr.to_s %>
- <%- end -%>
- <% end %>
-
- <% if !(@attributeafters.nil?) %>
- <%- @attributeafters.not_nil!.each do |attr| -%>
- <%- attr.class_name = @name -%>
- <%-= attr.to_s %>
- <%- end -%>
- <% end %>
-
- <% if !(@bitfields.nil?) %>
- <%- @bitfields.not_nil!.each do |attr| -%>
- <%- attr.class_name = @name -%>
- <%-= attr.to_s %>
- <%- end -%>
- <% end %>
-
- <% if !(@repeats.nil?) %>
- <%- @repeats.not_nil!.each do |attr| -%>
- <%- attr.class_name = @name -%>
- <%-= attr.to_s %>
- <%- end -%>
- <% end %>
-
- private:
- void dummy_function()
- {
- <% if !@size.nil? %>
- <%- sz = @size.not_nil! -%>
- <% if !(@attributes.nil?) %>
- <%- @attributes.not_nil!.each do |attr|-%>
- <%- if attr.start > sz -%>
- <%- raise "attribute starts after end: "+attr.name+" in class "+@name -%>
- <%- end -%>
- static_assert(<%= attr.name %>_end_position()<=<%= sz%>, "attribute past the end");
- <%- end -%>
- <%- end -%>
- <% if !(@bitfields.nil?) %>
- <%- @bitfields.not_nil!.each do |attr|-%>
- <%- if attr.start > sz -%>
- <%- raise "bitfield starts after end: "+attr.name+" in class "+@name -%>
- <%- end -%>
- static_assert(<%= attr.name %>_end_position()<=<%= sz%>, "attribute past the end");
- <%- end -%>
- <%- end -%>
- <% end %>
- }
-
- };
|