Отключить предупреждение для неиспользуемых структурированных привязок - PullRequest
1 голос
/ 21 сентября 2019

Я извлекаю кортеж с auto [...], но я использую только некоторые координат кортежа.Я хотел знать, есть ли какой-нибудь элегантный способ избежать предупреждения компилятора unused-variable?Вот мой код.

#include <iostream>
#include <vector>
#include <tuple>

int main(int argc, char **argv)
{
    std::vector<std::tuple<char,float,int>> myvec;
    myvec.push_back(std::make_tuple('a',3.5,8));
    myvec.push_back(std::make_tuple('b',1.5,4));
    auto [c,f,_] = myvec[1];
    std::cout << "char float is " << c << " " << f << "\n";
    return 0;
}

А вот строка компиляции + предупреждение:

$ g++ -Wall -std=c++17 main.cpp -o main
main.cpp: In function ‘int main(int, char**)’:
main.cpp:10:13: warning: unused variable ‘_’ [-Wunused-variable]
  auto [c,f,_] = myvec[1];
             ^

(я использовал переменную, подобную Haskell _, чтобы документировать тот факт, чтоlast int - это значение, которое не имеет значения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...