Guard constructor of TupleVector by SFINAE
This removes the constructor from the overload set
if you cannot construct the underlying std::tuple
from the argument list. The difference is subtle:
For argument lists not supported by std::tuple
calling
the TupleVector
constructor will still fail. Until now
the failure happended inside of the TupleVector
constructor. Now it happens as at the callers side.
The main difference is that this is detectable, e.g.,
using void_t
.