Program Listing for File quack_field.h¶
↰ Return to documentation for file (src/quack_field.h)
#include <utility>
#ifndef PROJECT02_QUACK_FIELD_H
#define PROJECT02_QUACK_FIELD_H
#include <utility>
#include <cstring>
#include <assert.h>
#include "container_templates.h"
namespace Quack {
// Forward declaration
class Class;
struct Field {
struct Container : public MapContainer<Field> {
const void print_original_src(unsigned int indent_depth) override {
// Do not implement. Makes no sense since not needed.
assert(false);
}
void add_by_name(const std::string &name) {
add(new Field(name));
}
bool is_super_set(Container *other) {
for (const auto &field_info : *other) {
if (!exists(field_info.first))
return false;
}
return true;
}
};
explicit Field(std::string name) : name_(std::move(name)) { }
std::string name_;
Class* type_ = nullptr;
};
}
#endif //PROJECT02_QUACK_FIELD_H