 #include "hashmap/managed.cuh"
 
 // TODO Inherit from managed class to allocate with managed memory?
-template <typename T>
+template <typename T, typename byte_t = unsigned char>
 class gdf_table : public managed
 {
 public:
 
   using size_type = T;
+  using byte_type = byte_t;
 
   gdf_table(size_type num_cols, gdf_column ** gdf_columns) 
     : num_columns(num_cols), host_columns(gdf_columns)

    sprintf(row,")\n");

    printf("%s %s", msg, row);

  }

    /* --------------------------------------------------------------------------*/

      if(GDF_SUCCESS == get_column_byte_width(current_column, &column_width_bytes))
      {
        row_size_bytes += column_width_bytes;

        // Store the byte width of each column in a device array
        column_byte_widths.push_back(static_cast<byte_type>(row_size_bytes));
      }
      else
      {
        std::cerr << "Attempted to get column byte width of unsupported GDF datatype.\n";
        column_byte_widths.push_back(0);
      }
    }

    d_columns_data = device_columns.data().get();
    d_columns_types = device_types.data().get();
    d_column_byte_widths = column_byte_widths.data().get();
  }

  ~gdf_table(){}
