Consider the following program, defining a std::vector containing the value 13:
std::vector<int> vec{13};
This could also have been interpreted as a call to the constructor that initializes the vector with 13 zeros. My question is: how does the compiler choose between constructing a std::vector with an initializer_list or by initializing the vector with 13 zeros?