Ce que je retiens surtout de la vidéo c'est que le mec fait du C++ sans exceptions, sans templates, sans STL, sans héritage multiple, sans surcharge d'opérateur, sans RTTI, voire même sans classes, et quand à la fin on lui demande très justement pourquoi il fait pas plutôt du C, il ne trouve rien d'autre que "parce que le support C de MSVC est pourri"

Ceci dit, le fond de son argumentation n'est pas dénué de bon sens. En fait, il dit exactement la même chose que ce que disent les utilisateurs de langages fonctionnels depuis 50 ans : il faut raisonner en priorité sur les structures de données et appliquer des fonctions simples qui font une transformation bien précise sur ces données. C'est mieux pour tout un tas de raisons, dont celle qui l'intéresse le plus en tant que développeur de moteur de jeux : la performance.
Godzil : je te rassure, la page wikipedia sur les visiteurs est absolument incompréhensible, même pour ceux qui savent très bien ce que c'est. A mon avis, c'est simplement parce qu'il n'y a pas la moindre explication sur la raison pour laquelle ce design pattern existe en premier lieu. Et c'est souvent le cas pour les design patterns en général. On oublie souvent de dire qu'ils existent pour contourner les limitations du système de typage parfois très contraignant de certains langages tels que C++ ou Java. En ce qui concerne les visiteurs, l'objectif est d'étendre les opérations qu'on peut appliquer sur une structure de données (en gros, comment rajouter une méthode à une hiérarchie de classes), sans modifier le code existant et sans affaiblir le typage. Je passe l'explication détaillée, qui est hors-sujet dans ce topic, mais si y'en a qui veulent essayer de comprendre un peu mieux pourquoi ça existe, il faut s'intéresser à un problème plus général qui s'appelle "the expression problem".