Template recursion error on table struct

Ali Çehreli via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Mar 25 23:28:42 PDT 2016


WARNING: Do not try to compile this code. Your computer may be 
unresponsive for a while. :)

On 03/25/2016 02:54 PM, data pulverizer wrote:
 > I am attempting to create a table struct with generic column types using
 > templates.

However, the template arguments are not types; rather, aliases.

 > template ColumnTable(T...){
 >      struct ColumnTable{
 >      private:
 >          typeof(T) data;
 >          string[] names;
 >          struct Range{
 >              size_t begin;
 >              size_t end;
 >          }
 >          // This function is the source of the issue
 >      auto subTable(Range rowRange, Range columnRange)(){
 >          auto new_data = data[columnRange.begin .. columnRange.end];
 >          auto output = ColumnTable!(new_data)(new_data); // This is the
 > problem

new_data is a local variable. So, this instantiation of ColumnTable is 
with that symbol.

 > void main(){
 >      string[] names = ["tariq", "sharma", "peter", "rakel"];
 >      double[] salary = [44.5, 32.2, 40.1, 28.1];
 >      int[] age = [24, 20, 22, 25, 19];
 >      writeln(ColumnTable!(names, salary, age)(names, salary, age));
 > }

Likewise, that instantiation of ColumnTable is with the symbols 'names', 
'salary', and 'age'. Is that what you want? Or do you want to 
instantiate with their types? Can you explain some more what you are 
trying to do.

Ali



More information about the Digitalmars-d-learn mailing list