In the Standard's description of std::variant, there is this line:
"A program that instantiates the definition of variant with no template arguments is ill-formed."
A bit later, regarding the variant(T&&) constructor, there is this:
"Remarks: This function shall not participate in overload resolution unless
- sizeof...(Types) is nonzero,"
Is this a redundant statement? "Types" is std::variant's parameter pack, so sizeof...(Types) == 0 would've already been ill-formed, not simply a failed overload.
Looks like an editorial issue to file, but I wanted to ask people here first.