Project Euler #8 - "largest product in a series"
This is probably not a good idea:


while (ifs.good()) {
  string line;
  getline(ifs, line);
  series += line;
}



You should be checking the stream itself, not the current state of the stream.  This can be done by putting the stream read (getline() in this case) inside the loop statement.

Also, as getline() (which uses line) will be moved out of scope after this change, you'll need to initialize line before the loop.

string line;

while (getline(ifs, line)) {
    series += line;
}


This will both attempt the read and determine if it was successful.  If it wasn't, specifically if the end of the file has been reached, then it will fail, and the loop will terminate.  See this answer for more info.
Your compiler should've warned you about this type-mismatch:


for (size_t i = 0; i &lt; DIGITS_IN_PRODUCT; i++)



The loop counter type should be an int to match the constant's type.