Demat' iNal,
J'ai récemment eu l'ineffable [1] plaisir de corriger un bug dans LLVM qui m'a causé quelques mauvaises soirées. Afin que l'histoire devienne légende et que la légende fasse mythe, je me décide à vous en raconter quelques détails amusants.
Considérons le bout de code suivant :
#include <string>
#include <boost/align/aligned_allocator.hpp>
constexpr std::size_t align = 32;
template<class T>
using aligned_allocator = boost::alignment::aligned_allocator<T, align>;
using aligned_string = std::basic_string<char, std::char_traits<char>, aligned_allocator<char>>;
aligned_string make_string(int num) {
return aligned_string(num, '\0');
}
#include <iostream>
(…)