A discovery about GCC's unidirectional rotation algorithm
L'article montre que l'algorithme de rotation de gcc libstdc++ coïncide avec l'algorithme destiné aux itérateurs avant. La démonstration utilise un exemple concret échangeant deux blocs A et B et suit les swaps et l'avancement des pointeurs. Les deux algorithmes réalisent les mêmes échanges et les étapes de récursion correspondent pour obtenir la rotation souhaitée. La différence notable est que la version gcc est symétrique et peut effectuer les swaps de droite à gauche lorsque le bloc le plus grand est à droite, alors que l'ancienne opère toujours de gauche à droite. L'auteur indique qu'il examinera ensuite la méthode de clang qui décompose la rotation en cycles.