Я нашел код Вот это выглядело примерно так:
auto f(T& t, size_t n) -> decltype(t.reserve(n), void()) { .. }
Во всей прочитанной документации мне сказали, что decltype
подписано как:
decltype( entity )
или же
decltype( expression )
И второго аргумента нет нигде. По крайней мере, на это указано cppreference. Это второй аргумент decltype
? И если так, что это делает?
Поскольку это выражение, запятая является просто оператором запятой (то есть тип является типом стороны rhs: void
), а не другой аргумент.
Этот код использует SFINAE — он включен, если t.reserve(n)
существует, но он хочет сохранить тип возвращаемого значения как void
,
Других решений пока нет …