tuple <int, string, int> x=make_tuple(1, "anukul", 100);
cout << x[0]; //1
cout << get<0>(x); //2
2 работает. 1 не работает.
Почему это так?
Из Lounge С++ я узнал, что это, вероятно, потому, что компилятор не знает, какой тип данных хранится в этом индексе. Но для меня это не имело большого смысла, поскольку компилятор мог просто найти декларацию этого кортежа и определить тип данных или сделать что-то еще, получая доступ к элементам других структур данных по индексу.