Поскольку включение не дало ошибку препроцессора, вполне вероятно, что заголовок кортежа действительно существует и что это не случай неправильной / устаревшей установки стандартной библиотеки C ++.
Однако tuple
, не определяемый в std
, ожидается для всех стандартов C ++ до C ++ 11.
При стандартной установке и без дополнительных флагов ваша версия Clang должна использовать C ++ 14,однако, похоже, это было изменено тем, кто поддерживает эту систему или сопровождающим пакета.
Чтобы убедиться, что вы используете самый последний стандарт языка C ++, добавьте -std=c++17
к вызову компилятора или по крайней мере -std=c++14
если C ++ 17 слишком недавний по какой-то причине, например, совместимость со старыми установками компилятора.В частности, если вы программируете для университетского класса, вы можете попросить уточнить, какой стандарт C ++ приемлем для использования.