Comparing distances with DistProxy

So let's see how the PointDistance proxy class looks in action. In this example, we'll determine which of the points, a or b, that are closest to bingo. Note how the code syntactically looks exactly the same as had we not utilized a PointDistance proxy class:

auto bingo = Point{31, 11};auto a = Point{23, 42};auto b = Point{33, 12};bool a_is_nearest = a.distance(bingo) < b.distance(bingo);

Under the hood, the final statement is expanded to something similar to this:

// These "DistProxy" proxy objects are never visible from the outsideDistProxy a_to_bingo = a.distance(bingo);DistProxy b_to_bingo = b.distance(bingo);// Member operator< on DistProxy is invoked, which compares member dist_sqrd_auto a_is_nearest ...

Get C++ High Performance now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.