In the Tuple ctor the tail can't be initialized according to the error message, which says that two parameters are sent, but as the parameter pack is empty there should be only one parameter in the call to the mTail ctor, the D2.
NOTE: By uncommenting line 1 a functioning version is enabled. But I'm not sure that this is valid C++11 even though it compiles. Both specializations should be eligible for the 1 parameter case. However, the compiler seems to prefer the one without a parameter pack. I don't know if this is according to the standard, I could not find any text about it. Can it be relied on to work on any compliant compiler?