когда я пытался написать этот код
int c, b;
auto [c,b] = make_tuple(12,14);
это дает мне эту ошибку: error: structured binding declaration cannot have type 'int'
затем две ошибки в заголовке, так что не так с кодом (примечание: я использую С++ 17)
я ожидал создать кортеж, подобный этой строке кода tuple <int ,int > t = make_tuple(4,3);
Если вы пытаетесь переназначить существующие имена, вам нужно std::tie(c, b) = make_tuple(12, 14);
Вам нужно только удалить int c, b;
. Это не место там.
Вы уже объявили c и b как целые числа в предыдущей строке, поэтому вы не можете использовать объявление структурированной привязки, потому что оно повторно объявляет b и c.
Если вы хотите переназначить c и b кортежу, используйте std::tie(c, b) = make_tuple(12, 14);
Если вы хотите объявить c и b с помощью объявления структурированной привязки, удалите объявление int c, b;
.
Вы повторно использовали ранее объявленные имена.