Вот код, я нахожу странную вещь в std::initializer_list . Я использую вс2013. Спасибо за помощь.
struct TempStruct
{
int t1;
int t2;
};
int Test_A(int a, int b)
{
std::cout << " int a, int b" << '\n';
return 1;
}
TempStruct Test_A(std::initializer_list<int> a, std::initializer_list<int> b)
{
std::cout << "initializer_list" << '\n';
TempStruct Temp;
Temp.t1 = 1;
Temp.t2 = 2;
return Temp;
}
int main()
{
auto a_test = Test_A(1, 1);
auto b_test = Test_A({ 1 }, {});
return 1;
}
Результат(std::cout) Я хочу:
int a, int b
initializer_list
Результат(std::cout) от vs2013
int a, int b
int a, int b
В IDE vs2013, если я наведу указатель мыши на «b_test», он покажет, что b_test — это TempStruct. После сборки результата нет. Это ошибка vs2013 или неправильное использование initializer_list ?