ligação estruturada com [[maybe_unused]]

Linguagens funcionais com correspondência de padrões (às vezes?) Têm a possibilidade de ignorar alguns valores vinculados, mas com ligações estruturadas C ++ 17 parece não haver maneira de fazer isso (std :: ignore com ligações estruturadas?) O conselho é usar um nome fictício, mas receberemos avisos sobre variáveis não utilizadas.

Com os mais recentes chefes do clang e do gcc, isso faz o esperado, o que é bom e útil,

[[maybe_unused]] auto x =4 ; // fine, no warning
[[maybe_unused]] auto [a,dummyb,dummyc] = std::tuple<int,int,float>(1,1,1.0f); 

mas eu também esperava que isso funcionasse:

auto [g,[[maybe_unused]]dummyh,[[maybe_unused]]dymmyi] =
      std::tuple<int,int,float>(1,1,1.0f);

existe uma razão específicaatributos não pode ser usado aqui? (no padrão e também tecnicamente). Nem o gcc nem o clang aceitam isso.

Edite, coletando o status do suporte: (graças agodbolt / compilador explorador) Funciona como esperado em (também poderia ser anterior):

tronco do gcc 8.0 (g ++ 8.0.0 20171015 experimental)clang 4.0.0icc 18 (não testado, de acordo comespecificações)

MSVC 17.3.5 (e a GUI do Visual Studio),permite o atributo, mas ele não funciona com ligações estruturadas.relatório de erro

questionAnswers(2)

yourAnswerToTheQuestion