Compile-time Visitor

In this section, we will analyze the possibility of using the Visitor pattern at compile time, in a similar fashion to, say, the application of the Strategy pattern that leads to policy-based design.

First of all, the multiple dispatch aspect of the Visitor pattern becomes trivial when used in the template context:

template <typename T1, typename T2> auto f(T1 t1, T2 t2);

A template function can easily run a different algorithm for any combination of the T1 and T2 types. Unlike the run-time polymorphism implemented with the virtual functions, dispatching the call differently based on two or more types comes at no extra cost (other than writing the code for all the combinations we need to handle, of course). Based on ...

Get Hands-On Design Patterns with C++ 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.