| OLD | NEW |
| 1 {% from 'fields/field.tmpl' import encode, declare_storage %} | 1 {% from 'fields/field.tmpl' import encode, declare_storage, compare %} |
| 2 {% from 'macros.tmpl' import print_if %} | 2 {% from 'macros.tmpl' import print_if %} |
| 3 {% macro define_field_group_class(group): -%} | 3 {% macro define_field_group_class(group): -%} |
| 4 class {{group.type_name}} : public RefCountedCopyable<{{group.type_name}}> { | 4 class {{group.type_name}} : public RefCountedCopyable<{{group.type_name}}> { |
| 5 public: | 5 public: |
| 6 static PassRefPtr<{{group.type_name}}> Create() { | 6 static PassRefPtr<{{group.type_name}}> Create() { |
| 7 return AdoptRef(new {{group.type_name}}); | 7 return AdoptRef(new {{group.type_name}}); |
| 8 } | 8 } |
| 9 PassRefPtr<{{group.type_name}}> Copy() const { | 9 PassRefPtr<{{group.type_name}}> Copy() const { |
| 10 return AdoptRef(new {{group.type_name}}(*this)); | 10 return AdoptRef(new {{group.type_name}}(*this)); |
| 11 } | 11 } |
| 12 | 12 |
| 13 bool operator==(const {{group.type_name}}& other) const { | 13 bool operator==(const {{group.type_name}}& other) const { |
| 14 return ( | 14 return ( |
| 15 {% for field in group.fields %} | 15 {% for field in group.fields %} |
| 16 {{field.name}} == other.{{field.name}}{{print_if(not loop.last, ' &&')}} | 16 {{compare(field.pointer_type_name, field.name, "other")}}{{print_if(not lo
op.last, ' &&')}} |
| 17 {% endfor %} | 17 {% endfor %} |
| 18 ); | 18 ); |
| 19 } | 19 } |
| 20 bool operator!=(const {{group.type_name}}& other) const { return !(*this == ot
her); } | 20 bool operator!=(const {{group.type_name}}& other) const { return !(*this == ot
her); } |
| 21 | 21 |
| 22 {% for field in group.fields %} | 22 {% for field in group.fields %} |
| 23 {{declare_storage(field)}} | 23 {{declare_storage(field)}} |
| 24 {% endfor %} | 24 {% endfor %} |
| 25 | 25 |
| 26 private: | 26 private: |
| 27 {{group.type_name}}() : | 27 {{group.type_name}}() : |
| 28 {% for field in group.fields %} | 28 {% for field in group.fields %} |
| 29 {{field.name}}({{encode(field, field.default_value)}}){{print_if(not loop.
last, ',')}} | 29 {{field.name}}({{encode(field, field.default_value)}}){{print_if(not loop.
last, ',')}} |
| 30 {% endfor %} | 30 {% endfor %} |
| 31 {} | 31 {} |
| 32 | 32 |
| 33 {{group.type_name}}(const {{group.type_name}}&) = default; | 33 {{group.type_name}}(const {{group.type_name}}&) = default; |
| 34 }; | 34 }; |
| 35 {%- endmacro %} | 35 {%- endmacro %} |
| OLD | NEW |