c++ c++11 sfinae decltype trailing-return-type

c++ - ¿Qué significa ''void()'' en ''auto f(params)-> decltype(..., void())''?



c++11 sfinae (1)

Como es una expresión, la coma es simplemente el operador de coma (lo que significa que el tipo es el tipo del lado rhs: void ), no otro argumento.

Ese código usa SFINAE: está habilitado si t.reserve(n) existe, pero quiere mantener el tipo de devolución como void .

Encontré un código here que se parecía a esto:

auto f(T& t, size_t n) -> decltype(t.reserve(n), void()) { .. }

En toda la documentación que leí, me dijeron que decltype está firmado como:

decltype( entity )

o

decltype( expression )

Y no hay un segundo argumento en ninguna parte. Al menos eso es lo que se señala en cppreference . ¿Es este un segundo argumento para decltype ? Y si es así, ¿qué hace?