On Sunday, 25 June 2017 at 17:30:58 UTC, Petar Kirov [ZombineDev]
wrote:
On Sunday, 25 June 2017 at 13:32:57 UTC, Andrew Chapman wrote:
I think you've answered the question with "You cannot have
unimplemented templates in interfaces". Thanks for the answer.
I'll rethink the way I'm doing this.
Cheers.
In your case you can probably use something along the lines of:
interface RelationalDBInterface
{
// You can even make this protected
Varaint loadUntypedRow(string sql, Variant[] params);
final T loadRow(T)(string sql, Variant[] params)
{
auto row = loadUntypedRow(sql, params);
enforce(row.hasValue,
this.classID ~ "::loadRow - Query returned an empty
row");
return row.toStruct!T;
}
}
Amazing, thank you!