That doesn't make sense. If it's static, it exists once per class (once per T here because Grid<int> is another class than Grid<double>) and you shouldn't allocate memory once per instance of a class.
Are you sure that ALL grids of type int should share the same cell_grid?