with auto return value and decltype it can leak out the private types too. [see example](https://godbolt.org/z/7eqejrK3q)