January 2018
Intermediate to advanced
374 pages
9h 53m
English
When requesting the actual distance, the calling code changes a teeny-weeny bit; we have to explicitly parse the DistProxy object to float; that is, we can't just use auto as usual:
auto a = Point{23, 42};auto b = Point{33, 12};float dist = a.distance(b); // Note that we cannot use auto here
If we were to just write auto, the dist object would be of the DistProxy type rather than float. We do not want the users of our code base to explicitly handle DistProxy objects; proxy objects should operate in the dark and only their results should be utilized (in this case, the comparison result or the actual distance value is float). Even though we cannot hide proxy objects completely, let's see how we can tighten ...