<div dir="ltr">Hello,<div><br></div><div>Following this article:</div><div><br></div><div><a href="http://alex.ciobanu.org/?p=51">http://alex.ciobanu.org/?p=51</a></div><div><br></div><div>The compiler does not check the constructor restriction.<br clear="all"><div><br></div><div>Try this test:</div><div><div><br></div><div>{$mode delphi}</div><div><br></div><div>  TTest = class<br></div><div>  private // hidding the constructor to cause a compiler error</div><div>    constructor Create;</div><div>  end;</div><div><br></div><div>  TGen<T: class, constructor> = class</div><div>  end;</div><div><br></div><div>constructor TTest.Create;<br></div><div>begin</div><div>end;</div><div><br></div><div>var  Gen: TGen<TTest>;</div><div>begin</div><div>  Gen := TGen<TTest>.Create;</div><div>end;</div></div><div><br></div><div>It compiles well in FPC (from trunk), but the same code in XE is:</div><div><br></div><div><div>"[dcc32 Error] Unit1.pas(36): E2513 Type parameter 'T' must have one public parameterless constructor named Create"</div></div><div><br></div><div>It is a bug in FPC or I need to enable some directive switch?</div><div><br></div><div>Thank you!</div><div><br></div>-- <br><div class="gmail_signature">Silvio Clécio<br>My public projects - <a href="http://github.com/silvioprog" target="_blank">github.com/silvioprog</a></div>
</div></div>