enlaces estructurados y basados en rango para; suprimir advertencia no utilizada en gcc

Quiero atravesar un mapa usando enlaces de estructura, ignorando la clave:

for (auto& [unused, val] : my_map)
     do_something(val);

He probado diferentes opciones con gcc-7.2.0:

// The warning is issued
for ([[maybe_unused]] auto& [unused, val] : my_map)
      do_something(val);

// Syntax error
for (auto& [[[maybe_unused]] unused, val] : my_map)
      do_something(val);

// The same two combinations above with [[gnu::unused]].

Parece que el[[maybe_unused]] El atributo aún no está implementado para enlaces de estructura.

¿Hay alguna solución simple para esto? Cualquier macro, extensión gcc / gnu o cualquier pragma para suprimir temporalmente esa advertencia específica está bien para mí; por ejemplo, deshabilitarlo durante todo el cuerpo de la función donde estoy usando el rango basado en for, porque la función que estoy usando es bastante corta (básicamente son dos rangos para bucles en dos mapas diferentes con un comportamiento exacto )

Las opciones (relevantes) que estoy usando para compilar el proyecto son:

-std=c++17 -Wall -Wextra -Werror -pedantic -pedantic-errors

Lo que tengo corriente para seguir es, pero eso es feo:

for (auto& [unused, val] : my_map)
   (void)unused, do_something(val);

Respuestas a la pregunta(2)

Su respuesta a la pregunta