To be clear, how are you determining which constructor got called? By looking at the disassembly? The init_list ctor is likely calling the
const int *, const int *
one internally.