At the time of instantiation (i.e., inside the constructor Test), the entire compiler is still a direct declaration Test2<>; he does not yet know which constructors are available.
To solve, move the definition Test2<>before Test, or move the constructor Testdefinition outside the class definition (and after the definition Test2<>).