// before main begins
enum SetLattice {
SETLATTICE_RANDOM,
SETLATTICE_DENSITY,
SETLATTICE_FILE
};
typedef struct CmdLineArgs {
int lattice_m;
int lattice_n;
int vacs;
float density;
char *vac_filename;
SetLattice setup;
} cmdline_args;
// then, in main...
CmdLineArgs cmd; // initialized to some values
switch(cmd.setup) {
case SETLATTICE_DENSITY: // randomly according to density
dvac.addDensityVacs(cmd.density);
break;
case SETLATTICE_FILE: // place vacancies as dictated in file
ifstream config_in; // <-- This is line 70!
getDimerLocations(config_in, cmd.vac_filename);
dvac.addFileVacs(config_in);
config_in.close();
break;
default: // add cmd.vacs vacancies at random <-- This is line 75!
addRandomVacs(cmd.vacs);
}
// below are compile time errors:
divac.cpp: In function `int main(int, char**)':
divac.cpp:75: error: jump to case label
divac.cpp:70: error: crosses initialization of 'std::ifstream config_in'