January 2018
Intermediate to advanced
374 pages
9h 53m
English
In contrast to many other programming languages, C++ does not have built in reflection, which means we have to write the reflection functionality ourselves. In this case we simply expose the member variables via a member function called reflect() which simply returns a tuple of references to the member variables by invoking std::tie.
class Town {
public:
Town(size_t houses, size_t settlers, const std::string& name)
: houses_{houses}, settlers_{settlers}, name_{name} {}
auto reflect() const {return std::tie(houses_, settlers_, name_);}
private:
size_t houses_{};
size_t settlers_{};
std::string name_{};
};